前边我们学了单表的查询, 更多的时候我们用的是多表查询, 例如有两个表
牛人表(用户id, 姓名, 公司id)
公司表(公司id, 公司名)
- 内链接 - inner join
-- 通过公司id链接两个表, 查询牛人和公司的对应关系。 inner可以省略
select
u.uname,
u.company '公司id',
c.cname '公司名称'
from
cattle_user u
inner join company c on ( u.company = c.cid );
- 左链接 - left join
-- 以左边的表为准, 左表有多少条记录, 即显示多少条记录, 右表没有对应数据的置为空
select
u.uname,
u.company '公司id',
c.cname '公司名称'
from
cattle_user u
left join company c on ( u.company = c.cid );
- 右链接 - right join
-- 以右侧边的表为准, 右表有多少条记录, 即显示多少条记录, 左表没有对应数据的置为空
select
u.uname,
u.company '公司id',
c.cname '公司名称'
from
cattle_user u
right join company c on ( u.company = c.cid );
- 子查询
-- 查询比阿里巴巴市值高的公司
select * from company where market_value > (select market_value from company where cname = '阿里巴巴');