自然加入表

时间:2016-03-23 03:47:18

标签: mysql sql-server join

讲师表: enter image description here

教授表: enter image description here

使用此查询在上面的两个表上进行自然连接时:

Select name, course_id
from instructor natural join teaches;

输出如下: enter image description here

在上面的例子中,教师是左表并教导右表吗?为什么结果关系中的第一行有Srinivasan作为名称。难道它不会有爱因斯坦,因为这是左表(讲师)的第一行,你加入右表(教)?因此,它将从教师那里查看222222 ID并查看是否与教师的ID匹配,然后查看12121(Wu)是否与来自教师的ID匹配,依此类推。我对这个输出表是如何形成感到困惑?

1 个答案:

答案 0 :(得分:4)

自然连接会自动从每个表中选择列以用于确定匹配的行。 SQL标识每个表中具有相同名称和类型的列;之后,这些列的值相等的行将作为匹配行返回。

因此,只有在选择和排序公共列之后,在这种情况下 - id,匹配才会发生。

因此,名字是Srinivasan,而不是爱因斯坦。