Sql 内部联接帮助-如何订购表联接?

Sql 内部联接帮助-如何订购表联接?,sql,Sql,我有两张桌子: 课程(主键=导师) 栏目:ID/Tutor/Room 教师(PK FK=导师) 栏目:Tutor/Contact 我想加入两个表。 表的连接顺序是否重要 即 或者我可以用另一种方式来做,而教师内部加入班级 两个表还共享一个公共列名Tutor。 在查询中使用Class.Tutor还是Teacher.Tutor有关系吗?是的,顺序很重要。 从班级中选择并加入教师将仅显示有教师的班级 从教师中选择并加入班级将仅显示有班级的教师 根据你想要达到的目标,你会知道哪一个是最相关的 我建议使用

我有两张桌子:

课程(主键=导师)

栏目:
ID/Tutor/Room

教师(PK FK=导师)

栏目:
Tutor/Contact

我想加入两个表。 表的连接顺序是否重要

或者我可以用另一种方式来做,而教师内部加入班级

两个表还共享一个公共列名Tutor。 在查询中使用Class.Tutor还是Teacher.Tutor有关系吗?

是的,顺序很重要。 从班级中选择并加入教师将仅显示有教师的班级 从教师中选择并加入班级将仅显示有班级的教师

根据你想要达到的目标,你会知道哪一个是最相关的

我建议使用“左键连接”,即使没有老师指定,它也会给你所有的课程


FWIW“class”可能是数据库、服务器端脚本和客户端脚本语言中的保留字。我会为该表名找到另一个单词。

对于
内部联接
,顺序无关紧要;您将获得的结果集将包含公共字段
Tutor
匹配的
Class
Teacher
中的所有行,以您指定的
Teacher
Class
顺序为准


当您使用
外部联接时,顺序并不重要;我建议您查看的答案。

当您仅使用内部联接时,联接的顺序并不重要。你使用哪一位导师是很重要的。你必须知道你想要哪一个。因为它是一个
内部连接
,顺序并不重要;在这两种情况下,结果集都是相同的(尽管返回这些结果的顺序可能不同)。此外,在联接条件本身中,
Class.Tutor
等于
Teacher.Tutor
,并且仅因为它是一个内部联接,所以在
select
列表中输出哪一个并不重要。如果它是一个外部联接,则一个可以为NULL,而另一个具有值。
SELECT Class.ID, Class.Tutor, Teacher.Contact
FROM **Class INNER JOIN Teacher** ON Class.Tutor=Teacher.Tutor