眾所周知,數(shù)據(jù)庫的表都是單獨(dú)存在的箕母,但是當(dāng)我們進(jìn)行聯(lián)合查詢(多表查詢)時(shí)吓妆,我們獲得數(shù)據(jù)庫返回的值時(shí)就好像在一張表里一樣,這是因?yàn)樵谶M(jìn)行聯(lián)合查詢時(shí)數(shù)據(jù)庫會(huì)生成一個(gè)臨時(shí)表返回給我們所想要的數(shù)據(jù)信息宣渗,這時(shí)我們都是通過LEFT JOIN 等語句進(jìn)行相關(guān)聯(lián)抖所,并且我們也會(huì)為我們所想查詢的數(shù)據(jù)進(jìn)行一個(gè)篩選梨州,這時(shí)我們就會(huì)用到過濾語句。
LEFT JOIN ON WHERE:在臨時(shí)表生成后田轧,再對(duì)臨時(shí)表的數(shù)據(jù)進(jìn)行過濾摊唇,再返回左表。
LEFT JOIN ON AND:在臨時(shí)表生成的過程時(shí)涯鲁,ON中的條件不管是否為真巷查,都將返回左表。
例如:
表1.id 表1.value 表2.value 表2.name
1 100 100 開心
2 200 200 很開心
3 300 300 超級(jí)開心
4 400 400 無敵開心
SQL語句如下:
[1] SELECT * FROM 表1 LEFT JOIN 表2 ON (表1.value = 表2.value) WHERE 表2.name = 開心
[2] SELECT * FROM 表1 LEFT JOIN 表2 ON (表1.value = 表2.value) ON 表2.name = 開心
當(dāng)執(zhí)行[1]的時(shí)候得:
表1.id 表1.value 表2.value 表2.name
1 100 100 開心
當(dāng)執(zhí)行[2]的時(shí)候得:
表1.id 表1.value 表2.value 表2.name
1 100 100 開心
2 200 NULL NULL
3 300 NULL NULL
4 400 NULL NULL
同理抹腿,RIGHT JOIN和FULL JOIN都具備這個(gè)特性岛请,注意,INNER JOIN不具備這個(gè)特性警绩。