关联查询
原表信息
SQL语句逻辑执行顺序
select
--------------(4
from
tb_name----- (1
where---------(2
group by -----(3
having --------(5
order by -----(6
limit ----------- (7
join on
避免了笛卡尔积
select
*
from
tb_a join tb_b
on
tb_a.id = tb_b.id;
- 结果
inner join
表示在表中存在至少一个匹配时,INNER JOIN 关键字返回行。
select
*
from
tb_a inner join tb_b
on
tb_a.id = tb_b.id;
- 结果
left join
左连接 返回包括左表中的所有记录和右表中连接字段相等的记录。
select
*
from
tb_a left join tb_b
on
tb_a.id = tb_b.id;
-
结果
right join
右连接 返回包括右表中的所有记录和左表中连接字段相等的记录。
select
*
from
tb_a right join tb_b
on
tb_a.id = tb_b.id;
- 结果
full join
全连接 返回左右表中所有的记录和左右表中连接字段相等的记录
select
*
from
tb_a full join tb_b
on
tb_a.id = tb_b.id;
- 结果
union
联合 两个select语句的结果作为一个整体显示出来(去重,union all 不会去重)
select* from tb_a
union
select * from tb_b ;
- 结果
left semi join
左半连接 两表按要求连接 只保留左表信息
select
*
from
tb_a
left semi join
tb_b
on tb_a.id = tb_b.id ;
- 结果