多表查询
一、基本连接:
注意:相同字段必须要有相同的属性(值)才可以连接
没有相同的值他不会进行显示
select * from aa,cc where aa.id=cc.s_id
二:内连接 inner join
select * from aa inner join cc on aa.id=cc.s_id
三、左连接 left join,
左连接:显示全部的连接的数据,没有相同属性的值也可以显示,以左表为主,右表没有的数据自动用null填充
select * from aa left join cc on aa.id=cc.s_id
四、右连接:right join,以右表为主表,左边表没有数据不显示或者以null填充
select * from aa right join cc on aa.id=cc.s_id
你熟悉那些多表连接方法?左连接和右连接有哪些区别?
- 左连接他是以左表为主表
- 右连接他是以右表为主表
- 左连接比右连接快
五、硬链接 union 硬链接
select * from aa union select * from cc;
把第二张表的数据追加在第一张表数据的下面
六、零时表
把一张表已经连接好了使用select语句查询连接的数据,零时表必须加上别名,不然会报错
嵌套表
嵌套:
#在aa表里面求出张三的id值
select id from aa where name="zhangsan";
s_id 1001
id 1001 =select * from cc where s_id = (select id from aa where name="zhangsan");
等于:A表等于B表的值取出对应的值
in : a表的值在B表的当中,我就取对应值
select * from cc where s_id in (select id from aawhere name="zhangsan" );
|
|