我正在看一个没有关于正确答案的解释的实践测试。我很困惑的问题基本上是问为什么以下SQL语句永远无法工作:
SELECT oi.order_id, product_jd, order_date FROM order_items oi JOIN orders o USING(order_id);
它给出的答案是:“由于USING子句的列部分在SELECT列表中不能有限定符,因此该语句将不会执行”
有人可以详细说明吗?我很沮丧。
它在抱怨oi预选赛:
oi
SELECT oi.order_id, product_jd, order_date ^^^
Oracle不允许将限定词与联接一起使用using。最明确的解决方法是使用常规联接:
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,它们都相等:
order_id
SELECT order_id, product_jd, order_date FROM order_items oi JOIN orders o USING(order_id)