我在oracle认证中看到了一个问题。
您希望列出所有拥有多个客户的城市以及客户详细信息。 评估以下查询:
SQL>SELECT c1.custname, c1.city
FROM Customers c1 __________________ Customers c2
ON (c1.city=c2.city AND c1.custname<>c2.custname);
在上述查询的空白处可以使用哪两个'JOIN'选项来提供正确的输出? (选择两项。)
A.'JOIN'
B.'NATURAL JOIN'
C.'LEFT OUTER JOIN'
D.'FULL OUTER JOIN'
E.'RIGHT OUTER JOIN'
答案:A,E
我不知道为什么他将c1.custname&lt;&gt; c2.custname添加到'on'部分
答案 0 :(得分:1)
如果没有c1.custname&lt;&gt; c2.custname,此查询将导致列出所有客户和城市,而不仅仅列出具有多个客户的客户
custname | city
Smith | NY
Thompson | LA
Locke | LA
如果没有该条款,它将返回所有客户,因为当我们加入Smith |时纽约与史密斯|纽约城市只有我们得到一个匹配 - 与aditional c1.custname&lt;&gt; c2.custname这是不可能的,因为o同名