执行JOIN w/USING关键字时,在选择列表中不能有限定符

Jui*_*123 4 sql join using

我正在看一个没有正确答案解释的练习测试.我很困惑的问题基本上是为什么以下SQL语句永远不能工作:

SELECT oi.order_id, product_jd, order_date
FROM order_items oi JOIN orders o
USING(order_id);
Run Code Online (Sandbox Code Playgroud)

它给出的答案是:"语句不会执行,因为USING子句的列部分在SELECT列表中不能有限定符"

有人可以详细说明吗?我很难过.

And*_*mar 11

它抱怨oi资格赛:

SELECT oi.order_id, product_jd, order_date
       ^^^
Run Code Online (Sandbox Code Playgroud)

Oracle不允许将限定符与using连接组合使用.最明确的方法是使用常规连接:

SELECT oi.order_id, product_jd, order_date
FROM order_items oi 
JOIN orders o ON o.order_id = oi.order_id
Run Code Online (Sandbox Code Playgroud)

您也可以省略限定符.该using声明告诉Oracle,即使有两个字段被调用order_id,它们都是相同的:

SELECT order_id, product_jd, order_date
FROM order_items oi JOIN orders o
USING(order_id)
Run Code Online (Sandbox Code Playgroud)