轉發自:https://blog.csdn.net/appleyuchi/article/details/79404886
在數據庫中新建三張表格:
T1
T2
T3
普通查詢:
select * from T1, T3 where T1.user_id = T3.user_id
結果:
---------------------------------------------------------------
join就是把兩張表格等效當做一張表來查
內聯(inner join):
select * from T1 inner join T2 on T1.user_id = T2.user_id
on表示條件
T1 inner join T2表示T1和T2 整合起來當做一張表
結果:
---------------------------------------------------------------
左外聯(left outer join):
select * from T1 left outer join T2 on T1.user_id=T2.user_id
T1 left outer join T2中的left表示左邊先顯示T1,T2要不要顯示取決於on後面的條件
表示左邊的表格不加限制
left outer join可以寫成left join,所以左外聯就是左聯,下同
select * from T1 left join T2 on T1.user_id=T2.user_id
結果:
---------------------------------------------------------------
右外聯(right outer join):
select * from T1 right outer join T2 on T1.user_id=T2.user_id
表示右邊的表格不加限制
結果:
---------------------------------------------------------------
全外聯(full outer join)
由於mysql不支持全聯
select * from T1 left join T2 on T1.user_id = T2.user_id
union
select * from right join T2 on T1.user_id = T2.user_id ;
結果:
---------------------------------------------------------------
交叉聯(cross join)也就是把兩張表格的內容進行排列組合後返回
select * from T1 cross join T2
結果: