朱杰兵blog

jonhney'blog
posts - 140, comments - 1, trackbacks - 0, articles - 0

连接查询

Posted on 2015-05-08 15:27 朱杰兵 阅读(106) 评论(0)  编辑  收藏
左外连接包含left join左表所有行,如果左表中某行在右表没有匹配,则结果中对应行右表的部分全部为空(NULL).

注:此时我们不能说结果的行数等于左表数据的行数。当然此处查询结果的行数等于左表数据的行数,因为左右两表此时为一对一关系。

**********************************************************************************
下面介绍一下当两表为多对多的时候我们该如何建表以及些SQL语句。

新建三表:

表A:  student 截图如下:

SQL多表连接查询

表B:  course 截图如下:

SQL多表连接查询

表C:  student_course 截图如下:

SQL多表连接查询

一个学生可以选择多门课程,一门课程可以被多个学生选择,因此学生表student和课程表course之间是多对多的关系。

当两表为多对多关系的时候,我们需要建立一个中间表student_course,中间表至少要有两表的主键,当然还可以有别的内容。

SQL 语句:select s.Name,C.Cname from student_course as sc left join student as s on s.Sno=sc.Sno left join course as c on c.Cno=sc.Cno

执行结果:

SQL多表连接查询

此条SQL执行的结果是学生选课的情况。

只有注册用户登录后才能发表评论。


网站导航: