欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

在where后面進(jìn)行條件過(guò)濾,是對(duì)左表右表的結(jié)果表進(jìn)行過(guò)濾,所以數(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中過(guò)濾了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ù)中,我們會(huì)使用中間表查詢數(shù)據(jù),如果存在業(yè)務(wù),要顯示test1中的全部數(shù)據(jù),并攜帶test2中的有效數(shù)據(jù),我們一般會(huì)采用left join 去完成sql,而這時(shí)需要注意應(yīng)該將test2和test3的結(jié)果表作為整個(gè)右表,才能正常完成業(yè)務(wù)。

1.錯(cuò)誤示范:

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

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

在這里插入圖片描述

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

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

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

在這里插入圖片描述

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

2.正確操作 

2.1將test2和test3作為整個(gè)右表查詢

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)行條件過(guò)濾時(shí),on條件只會(huì)對(duì)右表進(jìn)行條件過(guò)濾,不會(huì)對(duì)左表數(shù)據(jù)產(chǎn)生任何影響;

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

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

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

相關(guān)文章

  • CentOS 7 安裝Percona Server+Mysql

    CentOS 7 安裝Percona Server+Mysql

    這篇文章主要介紹了CentOS 7 安裝Percona Server+Mysql的相關(guān)資料,需要的朋友可以參考下
    2018-11-11
  • windows下忘記MySQL密碼的修改方法

    windows下忘記MySQL密碼的修改方法

    這篇文章主要介紹了windows下忘記MySQL密碼的修改方法,需要的朋友可以參考下
    2014-03-03
  • mysql下普通索引和唯一索引的效率對(duì)比

    mysql下普通索引和唯一索引的效率對(duì)比

    昨天有位同事說(shuō),他的網(wǎng)頁(yè)查詢過(guò)程中發(fā)現(xiàn)普通索引和唯一索引的效率是有差別的,普通索引比唯一索引快
    2010-12-12
  • MySQL中查詢當(dāng)前時(shí)間間隔前1天的數(shù)據(jù)

    MySQL中查詢當(dāng)前時(shí)間間隔前1天的數(shù)據(jù)

    實(shí)際項(xiàng)目中我們都會(huì)遇到分布式定時(shí)任務(wù)執(zhí)行的情況,今天通過(guò)本文給大家分享MySQL中查詢當(dāng)前時(shí)間間隔前1天的數(shù)據(jù),查詢sql語(yǔ)句給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧<BR>
    2021-12-12
  • Mysql5.7并發(fā)插入死鎖問(wèn)題解決

    Mysql5.7并發(fā)插入死鎖問(wèn)題解決

    死鎖是數(shù)據(jù)庫(kù)并發(fā)控制中的一種現(xiàn)象,它涉及多個(gè)事務(wù)在執(zhí)行過(guò)程中相互等待對(duì)方占有的資源,導(dǎo)致無(wú)法繼續(xù)執(zhí)行,本文就來(lái)介紹一下Mysql5.7并發(fā)插入死鎖問(wèn)題解決,感興趣的可以了解一下
    2024-09-09
  • MySQL通過(guò)binlog實(shí)現(xiàn)恢復(fù)數(shù)據(jù)

    MySQL通過(guò)binlog實(shí)現(xiàn)恢復(fù)數(shù)據(jù)

    在MySQL中,如果不小心刪除了數(shù)據(jù),可以利用二進(jìn)制日志(binlog)來(lái)恢復(fù)數(shù)據(jù),本文將通過(guò)幾個(gè)示例為大家介紹一下具體實(shí)現(xiàn)方法,希望對(duì)大家有所幫助
    2025-01-01
  • 淺談MySQL中用什么數(shù)據(jù)類型存IP地址

    淺談MySQL中用什么數(shù)據(jù)類型存IP地址

    MySQL中用什么數(shù)據(jù)類型存IP地址?在MySQL中,當(dāng)存儲(chǔ)IPv4地址時(shí),應(yīng)該使用32位的無(wú)符號(hào)整數(shù)來(lái)存儲(chǔ)IP地址,而不是使用字符串,本文就介紹一下這幾種情況,感興趣的可以了解一下
    2023-08-08
  • MySQL中MTR的概念

    MySQL中MTR的概念

    這篇文章主要介紹了MySQL中MTR的概念,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫(kù),感興趣的朋友可以了解下
    2020-11-11
  • MySQL錯(cuò)誤代碼2058和2059的解決辦法

    MySQL錯(cuò)誤代碼2058和2059的解決辦法

    這篇文章主要介紹了MySQL錯(cuò)誤代碼2058和2059的解決辦法,2058和2059的錯(cuò)誤碼核心都是你用的客戶端工具和mysql版本的密碼插件不匹配,下面就來(lái)介紹一下解決方法,感興趣的可以了解一下
    2025-03-03
  • MySql中數(shù)據(jù)表增加字段很慢問(wèn)題及解決

    MySql中數(shù)據(jù)表增加字段很慢問(wèn)題及解決

    這篇文章主要介紹了MySql中數(shù)據(jù)表增加字段很慢問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04

最新評(píng)論