现在有两张表,计算机学院学生表和选课表,表的结构如图所示:
Student
SCourse
为了更加直观的解释,先以上述两张表为基础执行相应的SQL语句,再进行解释。
左连接(LEFT JOIN)
SQL语句
SELECT * FROM Student LEFT JOIN SCourse ON Student.SNumber = SCourse.SID
执行结果
详细解释LEFT JOIN首先取出的是主表的所有记录,在这个例子中也就是Student表的所有记录,然后按ON后面的条件进行连接,满足条件则把附表的相应记录加到主表的相应记录中,若没有满足条件的则相应字段为Null,也就是上图的结果。
右连接(RIGHT JOIN)
SQL语句
SELECT * FROM Student RIGHT JOIN SCourse ON Student.SNumber = SCourse.SID
执行结果
详细解释RIGHT JOIN首先取出的是也是主表的所有记录,在这个例子中是SCourse表的所有记录,然后按ON后面的条件进行连接,满足条件则把附表的相应记录加到主表的相应记录中,若没有满足条件的则相应字段为Null,也就是上图的结果。
内连接(INNER JOIN)
SQL语句
SELECT * FROM Student INNER JOIN SCourse ON Student.SNumber = SCourse.SID
执行结果
详细解释INNER JOIN不以哪个表为主表,只连接满足条件的记录。它就等价于:
SELECT * FROM Student, SCourse WHERE Student.SNumber = SCourse.SID
————————————————
版权声明:本文为CSDN博主「初心不忘」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:/shuaijiasanshao/article/details/51387192