赞
踩
join 连接:
表stu:
id | name | classid |
---|---|---|
1 | A | 1 |
2 | B | 1 |
3 | C | 2 |
4 | D | 2 |
5 | E | 1 |
表class:
id | name | manage |
---|---|---|
1 | chao | limei |
2 | may | xingxing |
stu join class (等于新生成一个表)
所有的列都要放一块,第一个表里面的一行和第二个表里面的数据都要做一个集合。上面俩表共生成10条数据。。
(笛卡尔积)
以前是from 表
from 表join表(这是一个表)
from 表join表 on 条件(on等于一个过滤条件 例子:id=class.id)
left join 与join的区别
①.left join必须有on条件
②.会检查左边表的数据是否都包含在新生成的表中,如果是都包含,与join没有区别,如果不是,用NULL不包含的行组成新行,加入新表。
③.left join左右两边的表不能交换。
④.A right join B=B left join A
多表连接
A、B、C都为表
用join的时候
A join B
join C
join D
的意思就是A和B连接的结果连接C,连接C完毕的结果再连接D。
也可以写成(A join B on)join (C join D on) on
用left join的时候
A left join B on left join C on
什么时候用join,什么时候用left join ??
表stu:
id | name | classid |
---|---|---|
1 | A | 1 |
2 | B | 1 |
3 | C | 2 |
4 | D | 2 |
表class:
id | name | manage |
---|---|---|
1 | chao | limei |
2 | may | xingxing |
查询i学生A的班主任名称。
stu join class on classid =class.id where stu.name=“A”
当表class中,第二行不存在时:查询那些同学目前是没有班的:
select stu.id from stu left join class on classid=class.id where class.id =NULL
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。