mysql 左、右、内连接及三表联查

时间:2022-09-23 08:26:28
A站在B的左边  ======>B站在A的右边
A left join B ======>B right join A
如何记忆:
1左右连接可以相互转化
2把右连接转换成左连接来使用(推荐左连接,兼容性好一些)





左连接:以左表为准,去右表找匹配数据,找不到匹配,用NULL补齐

表1.*,表2.*(代表取出两张表的所有列)

select1.*,表2.* from1 left join2 on1列 = 表2列 (where,group照常写);




右连接 right
select1.*,表2.* from1 right join2 on1.列 = 表2.列 (where,group照常写);





内连接:查询左右表都有的数据;不要左/右连接中的NULL那一部分,内连接是左右链接的交集

select1.*,表2.* from1 inner join2 on1.列 = 表2.列 (where,group照常写);





三表连查

select hid,t1.tname as hname ,mres,gid,t2.tname as gname,matime from 

m(表1) left join t(表2) as t1 
on m(表1).hid = t1(表2).tid

left join t(表2) as t2  on m(表1).gid = t2(表2).tid