我正在看一个没有关于正确答案的解释的实践测试。我很困惑的问题基本上是问为什么以下SQL语句永远无法工作:
SELECT oi.order_id, product_jd, order_date
FROM order_items oi JOIN orders o
USING(order_id);
它给出的答案是:“由于USING子句的列部分在SELECT列表中不能有限定符,因此该语句将不会执行”
有人可以详细说明吗?我很沮丧。
最佳答案
它提示oi
限定词:
SELECT oi.order_id, product_jd, order_date
^^^
Oracle不允许将限定词与
using
连接一起使用。最明确的解决方法是使用常规联接:SELECT oi.order_id, product_jd, order_date
FROM order_items oi
JOIN orders o ON o.order_id = oi.order_id
您也可以省略限定词。
using
语句告诉Oracle,即使有两个称为order_id
的字段,它们都相等:SELECT order_id, product_jd, order_date
FROM order_items oi JOIN orders o
USING(order_id)
关于sql - 使用/USING关键字执行JOIN时,选择列表中不能有限定词,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2890572/