mysql中l(wèi)eft join搔弄,right join竹宋,inner join的區(qū)別
A表
id | name |
---|---|
1 | A |
2 | B |
3 | C |
4 | D |
5 | E |
- B表
id | name |
---|---|
1 | F |
2 | G |
3 | H |
4 | I |
6 | K |
left join
select * from A left join B on A.id = B.id;
- 出來的結(jié)果是:
image.png
結(jié)果說明:
left join是以A表的記錄為基礎(chǔ)的,A可以看成左表,B可以看成右表,left join是以左表為準(zhǔn)的.
換句話說,左表(A)的記錄將會全部表示出來,而右表(B)只會顯示符合搜索條件的記錄(例子中為: A.id = B.id)
B表記錄不足的地方均為NULL
right join
select * from A right join B on A.id = B.id;
- 出來的結(jié)果是:
image.png
結(jié)果說明:
仔細(xì)觀察一下,就會發(fā)現(xiàn),和left join的結(jié)果剛好相反,這次是以右表(B)為基礎(chǔ)的,A表不足的地方用NULL填充
inner join
select * from A inner join B on A.id = B.id;
- 出來的結(jié)果是:
image.png
結(jié)果說明:
很明顯,這里只顯示出了 A.aID = B.bID的記錄.這說明inner join并不以誰為基礎(chǔ),它只顯示符合條件的記錄