mysql - 自然连接表

标签 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

在上面的例子中,左表是instructor,右表是teacher吗?为什么结果关系中的第一行将 Srinivasan 作为名称。它不应该有 Einstein,因为那是左表(教师)中的第一行,而您正在将其与右表(教师)连接起来?所以它会查看 instructor 的 222222 ID,看它是否与 teaches 的 ID 匹配,然后它会查看 12121 (Wu) 是否与 teaches 的 ID 匹配,等等。我对这个输出表是如何形成的感到困惑?

最佳答案

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

因此,只有在公共(public)列被选择和排序之后,在本例中为 - id,匹配才会发生。

因此名字是斯里尼瓦桑,而不是爱因斯坦。

关于mysql - 自然连接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36169483/

相关文章:

PHP-fputcsv : put JSON values retrieved from MySQL field in separate columns

c# - 在 SQL Server 中反汇编位标志枚举

sql - 在内连接条件之前过滤表

mysql - 帮助 MySQL 连接语句

mySQL 外连接

mysql - 下载 RDS 快照

mysql - 在 MySQL 查询中使用 DISTINCT、COUNT 和 HAVING

mysql - 根据结果​​数量截断和连接 mysql 结果

sql-server - 具有定义范围的 ASCII 增量

列的 SQL MAX(包括其主键)