赞
踩
一、通过select子句进行多表查询
准备两张表:一张users用户表,一张user_addr用户地址表,它们有共同的user_id
select 字段名 from 表1,表2... where 表1.字段=表2.字段 add其他查询条件
- select addr_id,city,username,password
- from users,user_addr
- where users.user_id=user_addr.user_id;
二、通过内连接inner join进行查询
select 字段名 from 表1 inner join 表2 on 表1.字段=表2.字段
- select addr_id,city,username,password
- from users
- inner join user_addr
- on users.user_id=user_addr.user_id;
三、通过外连接left join,left outer join,right join,right outer jion,union进行查询
left join
语法:select 字段名 from 表1 left join 表2 on 表1.字段=表2.字段
- select addr_id,city,username,password
- from users
- left join user_addr
- on users.user_id=user_addr.user_id
left outer join(相当于left join+[where表2.字段 is null])
语法:select 字段名 from 表1 left join 表2 on 表1.字段=表2.字段 where 表2.字段is null
- select addr_id,city,username,password
- from users
- left join user_addr
- on users.user_id=user_addr.user_id
- where user_addr is null
right join
语法:select 字段名 from 表1 right join 表2 on 表1.字段=表2.字段
- select addr_id,city,username,password
- from users
- right join user_addr
- on users.user_id=user_addr.user_id
right outer join(相当于right join+[where 表1.字段 is null])
语法:select 字段名 from 表1 right join 表2 on 表1.字段=表2.字段 where 表1.字段is null
- select addr_id,city,username,password
- from users
- right join user_addr
- on users.user_id=user_addr.user_id
- where users.user_id is null
left join union right join
语法:select 字段名 from 表1 left join 表2 on 表1.字段=表2.字段 union select 字段名 from 表1 right join 表2 on 表1.字段=表2.字段
- select addr_id,city,username,password
- from users
- left join user_addr
- on users.user_id=user_addr.user_id
- union
- select addr_id,city,username,password
- from users
- right join user_addr
- on users.user_id=user_addr.user_id
四、结果展示
两张备用表
select子句多表查询及内连接
左连接
右连接
union
两表数据查询
准备表a、b
添加测试数据
b表
a表
b表和a表的不同的数据:
b表特有
a表特有
案例1:查询表b有表a没有的数据
SELECT * FROM b WHERE NOT EXISTS (SELECT 1 FROM a WHERE b.name = a.name)
案例2:查询表a有表b没有的数据
SELECT * FROM a WHERE NOT EXISTS (SELECT 1 FROM b WHERE b.name = a.name)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。