最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

LEFT JOIN條件在on后面和在where后面的區(qū)別及說明

 更新時間:2023年09月01日 09:39:53   作者:夜白宋  
這篇文章主要介紹了LEFT JOIN條件在on后面和在where后面的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

一、left join 的實際運(yùn)用

left join 一般用于顯示左邊所有數(shù)據(jù),并攜帶右表的數(shù)據(jù);

而在on后面進(jìn)行條件過濾,只會過濾掉右表條件不為真的數(shù)據(jù),左表數(shù)據(jù)一定會顯示;

在where后面進(jìn)行條件過濾,是對左表右表的結(jié)果表進(jìn)行過濾,所以數(shù)據(jù)不一定能完全顯示。

二、兩表聯(lián)查SQL區(qū)別

存在數(shù)據(jù)表test1, test4

test1:

在這里插入圖片描述

test4:

在這里插入圖片描述

1、在on后面補(bǔ)全條件

select * from test1 left join test4 on test1.id = test4.id and test4.is_effective = 1

在這里插入圖片描述

可以發(fā)現(xiàn)test1中的數(shù)據(jù)全部被讀取,test4中過濾了is_effective != 1的數(shù)據(jù)

2、在where后面補(bǔ)全條件

select * from test1 left join test4 on test1.id = test4.id where test4.is_effective = 1

在這里插入圖片描述

可以發(fā)現(xiàn)只顯示了test1中的id為1的數(shù)據(jù)內(nèi)容。

三、三表聯(lián)查SQL區(qū)別

存在test1,test2,test3三張表,其中test3是test1和test2的中間表

test1:

在這里插入圖片描述

test2:

在這里插入圖片描述

test3:

在這里插入圖片描述

某些業(yè)務(wù)中,我們會使用中間表查詢數(shù)據(jù),如果存在業(yè)務(wù),要顯示test1中的全部數(shù)據(jù),并攜帶test2中的有效數(shù)據(jù),我們一般會采用left join 去完成sql,而這時需要注意應(yīng)該將test2和test3的結(jié)果表作為整個右表,才能正常完成業(yè)務(wù)。

1.錯誤示范:

1.1 連續(xù)使用left join,on后面過濾條件

SELECT
	* 
FROM
	test1
	LEFT JOIN test3 ON test1.id = test3.id1
	LEFT JOIN test2 ON test2.id = test3.id2 and is_effective = 1

在這里插入圖片描述

會查出test1中的重復(fù)數(shù)據(jù)

1.2 連續(xù)使用left join,where后面過濾條件

SELECT
	* 
FROM
	test1
	LEFT JOIN test3 ON test1.id = test3.id1
	LEFT JOIN test2 ON test2.id = test3.id2 
WHERE
	is_effective = 1

在這里插入圖片描述

無法完全顯示test1中的數(shù)據(jù)

2.正確操作 

2.1將test2和test3作為整個右表查詢

SELECT
	* 
FROM
	test1
	LEFT JOIN ( SELECT * FROM test2 INNER JOIN test3 ON test2.id = test3.id2 WHERE is_effective = 1 ) b ON test1.id = b.id1

在這里插入圖片描述

正常完成查詢

四、結(jié)論

1.用left join 進(jìn)行條件過濾時,on條件只會對右表進(jìn)行條件過濾,不會對左表數(shù)據(jù)產(chǎn)生任何影響;

2.用left join 進(jìn)行條件過濾時,where條件會對結(jié)果表進(jìn)行條件過濾,所以會對左表數(shù)據(jù)產(chǎn)生影響;

3.用inner join 用on和where沒有任何區(qū)別

好了,以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

新建县| 莲花县| 洪湖市| 齐河县| 南安市| 崇明县| 图们市| 天柱县| 区。| 嵊泗县| 曲麻莱县| 富阳市| 福建省| 龙海市| 大兴区| 昌平区| 深圳市| 成都市| 东源县| 绵竹市| 孟津县| 郑州市| 和政县| 喀喇| 昌吉市| 安平县| 浑源县| 卓尼县| 漳州市| 福泉市| 兴山县| 内丘县| 镇安县| 保康县| 资源县| 称多县| 张家川| 防城港市| 兖州市| 抚宁县| 荣昌县|