Mysql之left join的用法解讀
簡述
left JOIN:把left join左邊的表的記錄全部找出來。系統(tǒng)會先用表A和表B做個笛卡兒積,然后以表A為基表,去掉笛卡兒積中表A部分為NULL的記錄。最后形成你的結(jié)果。
進行左連接時,就有涉及到主表、輔表,這時主表條件寫在WHERE之后,輔表條件寫在ON后面。
實例
1、表a結(jié)構(gòu)和數(shù)據(jù)
table a(id, type): id type ---------------------------------- 1 1 2 1 3 2
2、表b結(jié)構(gòu)和數(shù)據(jù)
table b(id, class): id class --------------------------------- 1 1 2 2
SQL語句調(diào)用
–sql語句1:
select a.*, b.* from a left join b on a.id = b.id and a.type = 1;
執(zhí)行結(jié)果為:
a.id a.type b.id b.class --------------------------------------- 1 1 1 1 2 1 2 2 3 2
–sql語句2:
select a.*, b.* from a left join b on a.id = b.id where a.type = 1;
執(zhí)行結(jié)果為:
a.id a.type b.id b.class ---------------------------------------- 1 1 1 1 2 1 2 2
–sql語句3:
select a.*, b.* from a left join b on a.id = b.id and b.class = 1;
執(zhí)行結(jié)果為:
a.id a.type b.id b.class ---------------------------------------- 1 1 1 1 2 1 3 2
總結(jié)
sql語句1可見,left join 中左表的全部記錄將全部被查詢顯示,on 后面的條件對它不起作用,除非再后面再加上where來進行篩選,這就是sql語句2了。
由sql語句3可見,on后面的條件中,右表的限制條件將會起作用。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
sql語句escape查詢數(shù)據(jù)中含通配字符[ %用法詳解
這篇文章主要為大家介紹了sql語句escape查詢數(shù)據(jù)中含通配字符[ %用法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-08-08
MySQL創(chuàng)建數(shù)據(jù)表時設(shè)定引擎MyISAM/InnoDB操作
這篇文章主要介紹了MySQL創(chuàng)建數(shù)據(jù)表時設(shè)定引擎MyISAM/InnoDB操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08

