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