mysql left join,right join,inner join 例項講解
阿新 • • 發佈:2019-02-19
表一:班級表,3條記錄。
表二:學生表,3條記錄,其中一條classid與班級表id對應。classid作為外來鍵關聯班級表id
實驗如下:
1.left join(左聯接)
SELECT * FROM class t1 LEFT JOIN student t2 on t1.id=t2.classid ;
結果說明:
班級表三條記錄全部展示。left join是以t1表(班級表)的記錄為基礎的,t1可以看成左表,t2可以看成右表,left join是以左表為準的.
換句話說,左表(班級表)的記錄將會全部表示出來,而右表(學生表)只會顯示符合搜尋條件的記錄(例子中為: t1.id=t2.classid).
t2表記錄不足的地方均為NULL.
2.right join(右聯接)
SELECT * FROM class t1 RIGHT JOIN student t2 on t1.id=t2.classid ;
結果說明:
學生表三條記錄全部展示。仔細觀察一下,就會發現,和left join的結果剛好相反,這次是以右表(t2)為基礎的,t1表不足的地方用NULL填充.
3.inner join(相等聯接或內聯接)
SELECT * FROM class t1 INNER JOIN student t2 on t1.id=t2.classid ;
等同於以下SQL句:
SELECT *
結果說明:
只展示符合條件的一條記錄。很明顯,這裡只顯示出了 t1.id=t2.classid的記錄.這說明inner join並不以誰為基礎,它只顯示符合條件的記錄.