数据库表连接之左连接(LEFT JOIN)、右连接(RIGHT JOIN)和内连接(INNER JOIN)

来源:互联网 发布:软件行业发展概况 编辑:程序博客网 时间:2024/05/17 02:14

        现在有两张表,计算机学院学生表和选课表,表的结构如图所示:

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


2 0