【发布时间】:2021-03-05 21:55:59
【问题描述】:
我看到下面的问题,我认为这是错误的,但正确的答案是正确的。
表 CUSTOMER 和 AGENT 的左外连接,具有 客户列在首位,代理列在首位 SQL 命令中的第二个,产生 CUSTOMER 表,包括那些没有 AGENT 表中的匹配值。
根据上面的问题,应该在下面选择:
select C.*, A.*
from Customer C
left join Agent A on A.CID = C.CID
所以上述语句的结果是客户表中的所有行+客户和代理表中的匹配值。 (我的教授说真/假问题是正确的,但似乎是错误的)。
【问题讨论】:
-
是的,有一个警告:如果
Customer中的一行在Agent中有多个匹配项,那么来自Customer的行将在结果集中出现多次,每个匹配行一个. -
MySQL 或 (MS)sql-server?
-
@MajidRezaie 我认为这是真的,因为来自 Customer 的所有行都会显示出来。不过,其中一些会出现多次。
-
对或错,我发现它作为一种考虑连接有点受限的方式很有用。
-
What is the difference between “INNER JOIN” and “OUTER JOIN”? PS 遵循出版的教科书,而不是随机的网页。所以关于定义的关系数据库答案也大多是无用的。请注意,该链接中指向我的答案的所有其他答案都不能准确解释外连接返回的内容,除了另一个之外,所有其他答案都不清楚且没有帮助。就像你的报价一样。接受的答案非常糟糕。在那里阅读我所有的 cmets。