参加考试oca 051

时间:2014-01-28 18:47:39

标签: sql oracle join

我在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'部分

1 个答案:

答案 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同名