内连接 只取公共部分
select * from a inner join b on a.id = b.id;
左连接 公共部分+a的部分
select * from a left join b on a.id = b.id;
右连接 公共部分+b的部分
select * from a right join b on a.id = b.id;
全外连接 就是左连接+右连接并且去重
select * from a full join b on a.id = b.id(注意mysql不支持这个操作,需要使用下面的操作)
select * from a left join b on a.id = b.id union(合并)
select * from a right join b on a.id = b.id;
多表查询的优先级
先from 左表,然后on具体条件,再是left/right/inner join右表,
然后就和单表查询的一样了,
先where在group by,然后having过滤,select查询,distinct去重,
最后order by排序,limit限制行数