91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

SQL語(yǔ)句中l(wèi)eft join后用on還是where

Android編程精選 ? 來(lái)源:CSDN博客 ? 作者:jcpp9527 ? 2021-11-22 11:08 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

來(lái)自丨blog.csdn.net/wqc19920906/article/details/79785424

前天寫SQL時(shí)本想通過(guò) A left B join on and 后面的條件來(lái)使查出的兩條記錄變成一條,奈何發(fā)現(xiàn)還是有兩條。后來(lái)發(fā)現(xiàn) join on and 不會(huì)過(guò)濾結(jié)果記錄條數(shù),只會(huì)根據(jù)and后的條件是否顯示 B表的記錄,A表的記錄一定會(huì)顯示。不管and 后面的是A.id=1還是B.id=1,都顯示出A表中所有的記錄,并關(guān)聯(lián)顯示B中對(duì)應(yīng)A表中id為1的記錄或者B表中id為1的記錄。運(yùn)行sql :

select * from student s left join class c on s.classId=c.id order by s.id

運(yùn)行sql :

select * from student s left join class c on s.classId=c.id and s.name=“張三” order by s.id

運(yùn)行sql :

select * from student s left join class c on s.classId=c.id and c.name=“三年級(jí)三班” order by s.id

數(shù)據(jù)庫(kù)在通過(guò)連接兩張或多張表來(lái)返回記錄時(shí),都會(huì)生成一張中間的臨時(shí)表,然后再將這張臨時(shí)表返回給用戶。在使用left jion時(shí),on和where條件的區(qū)別如下:1、 on條件是在生成臨時(shí)表時(shí)使用的條件,它不管on中的條件是否為真,都會(huì)返回左邊表中的記錄。2、where條件是在臨時(shí)表生成好后,再對(duì)臨時(shí)表進(jìn)行過(guò)濾的條件。這時(shí)已經(jīng)沒(méi)有l(wèi)eft join的含義(必須返回左邊表的記錄)了,條件不為真的就全部過(guò)濾掉。假設(shè)有兩張表:

兩條SQL:1、

select * form tab1 left join tab2 on (tab1.size = tab2.size) where tab2.name=’AAA’

2、

select * form tab1 left join tab2 on (tab1.size = tab2.size and tab2.name=’AAA’)

第一條SQL的過(guò)程:1、中間表on條件:

tab1.size = tab2.size

2、再對(duì)中間表過(guò)濾where 條件:

tab2.name=’AAA’

第二條SQL的過(guò)程:1、中間表on條件:

tab1.size = tab2.size and tab2.name=’AAA’

(條件不為真也會(huì)返回左表中的記錄)其實(shí)以上結(jié)果的關(guān)鍵原因就是left join,right join,full join的特殊性,不管on上的條件是否為真都會(huì)返回left或right表中的記錄,full則具有l(wèi)eft和right的特性的并集。而inner jion沒(méi)這個(gè)特殊性,則條件放在on中和where中,返回的結(jié)果集是相同的。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • SQL
    SQL
    +關(guān)注

    關(guān)注

    1

    文章

    789

    瀏覽量

    46695
  • 數(shù)據(jù)庫(kù)
    +關(guān)注

    關(guān)注

    7

    文章

    4019

    瀏覽量

    68337
  • SQL語(yǔ)句
    +關(guān)注

    關(guān)注

    0

    文章

    19

    瀏覽量

    7235

原文標(biāo)題:SQL語(yǔ)句中 left join 后用 on 還是 where,區(qū)別大了!

文章出處:【微信號(hào):AndroidPush,微信公眾號(hào):Android編程精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    條件的執(zhí)行語(yǔ)句

    條件執(zhí)行語(yǔ)句大多在if語(yǔ)句中使用,也在使用關(guān)系運(yùn)算符(<,==,>等) 或者布爾值表達(dá)式(,!等)計(jì)算復(fù)雜表達(dá)式時(shí)使用。對(duì)于包含函數(shù)調(diào) 用的代碼片段,由于函數(shù)返回值會(huì)被
    發(fā)表于 12-12 08:25

    使用NVIDIA Nemotron RAG和Microsoft SQL Server 2025構(gòu)建高性能AI應(yīng)用

    在 Microsoft Ignite 2025 大會(huì)上,隨著 Microsoft SQL Server 2025 的發(fā)布,AI 就緒型企業(yè)數(shù)據(jù)庫(kù)愿景成為現(xiàn)實(shí),為開(kāi)發(fā)者提供強(qiáng)大的新工具,例如內(nèi)置向量
    的頭像 發(fā)表于 12-01 09:31 ?790次閱讀
    使用NVIDIA Nemotron RAG和Microsoft <b class='flag-5'>SQL</b> Server 2025構(gòu)建高性能AI應(yīng)用

    C語(yǔ)言的分支結(jié)構(gòu)介紹

    1.簡(jiǎn)單if語(yǔ)句 C語(yǔ)言中的分支結(jié)構(gòu)語(yǔ)句中的if條件語(yǔ)句。 簡(jiǎn)單if語(yǔ)句的基本結(jié)構(gòu)如下: 代碼語(yǔ)言:javascript if(表達(dá)式) { 執(zhí)行代碼塊; } 其語(yǔ)義是:如
    發(fā)表于 11-25 07:48

    不用編程不用聯(lián)網(wǎng),實(shí)現(xiàn)倍福(BECKHOFF)PLC對(duì)接SQL數(shù)據(jù)庫(kù),上報(bào)和查詢數(shù)據(jù)的案例

    消息區(qū)域顯示的狀態(tài)消息;根據(jù)狀態(tài)消息調(diào)試。如下圖:智能網(wǎng)關(guān)根據(jù)以上配置自動(dòng)生成SQL語(yǔ)句命令,結(jié)合數(shù)據(jù)庫(kù)相關(guān)參數(shù)對(duì)接到服務(wù)器,多個(gè)SQL語(yǔ)句用\'任務(wù)組\'區(qū)分,相同的任務(wù)組即為同一個(gè)
    發(fā)表于 10-10 11:14

    數(shù)據(jù)庫(kù)慢查詢分析與SQL優(yōu)化實(shí)戰(zhàn)技巧

    今天,我將分享我在處理數(shù)千次數(shù)據(jù)庫(kù)性能問(wèn)題中積累的實(shí)戰(zhàn)經(jīng)驗(yàn),幫助你系統(tǒng)掌握慢查詢分析與SQL優(yōu)化的核心技巧。無(wú)論你是剛?cè)腴T的運(yùn)維新手,還是有一定經(jīng)驗(yàn)的工程師,這篇文章都將為你提供實(shí)用的解決方案。
    的頭像 發(fā)表于 09-08 09:34 ?974次閱讀

    SQL 通用數(shù)據(jù)類型

    SQL 通用數(shù)據(jù)類型 數(shù)據(jù)庫(kù)表中的每個(gè)列都要求有名稱和數(shù)據(jù)類型。Each column in a database table is required to have a name and a
    的頭像 發(fā)表于 08-18 09:46 ?710次閱讀

    Text2SQL準(zhǔn)確率暴漲22.6%!3大維度全拆

    摘要 技術(shù)背景:Text2SQL 是將自然語(yǔ)言查詢轉(zhuǎn)為 SQL 的任務(wù),經(jīng)歷了基于規(guī)則、神經(jīng)網(wǎng)絡(luò)、預(yù)訓(xùn)練語(yǔ)言模型、大語(yǔ)言模型四個(gè)階段。當(dāng)前面臨提示優(yōu)化、模型訓(xùn)練、推理時(shí)增強(qiáng)三大難題,研究
    的頭像 發(fā)表于 08-14 11:17 ?702次閱讀
    Text2<b class='flag-5'>SQL</b>準(zhǔn)確率暴漲22.6%!3大維度全拆

    不用編程序無(wú)需聯(lián)外網(wǎng),將Rockwell羅克韋爾(AB)PLC的標(biāo)簽數(shù)據(jù)存入SQL數(shù)據(jù)庫(kù)

    \' 欄目的數(shù)值1是SQL語(yǔ)句分組,相同的數(shù)值為同一個(gè)SQL語(yǔ)句命令。參數(shù)與自動(dòng)生成的SQL語(yǔ)句
    發(fā)表于 07-31 10:33

    Unicore標(biāo)準(zhǔn)NEMA語(yǔ)句GSA及說(shuō)明

    本文介紹和芯星通的NEMA語(yǔ)句說(shuō)明。
    的頭像 發(fā)表于 07-16 11:39 ?682次閱讀
    Unicore標(biāo)準(zhǔn)NEMA<b class='flag-5'>語(yǔ)句</b>GSA及說(shuō)明

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—SQL Server數(shù)據(jù)庫(kù)被加密如何恢復(fù)數(shù)據(jù)?

    SQL Server數(shù)據(jù)庫(kù)故障: SQL Server數(shù)據(jù)庫(kù)被加密,無(wú)法使用。 數(shù)據(jù)庫(kù)MDF、LDF、log日志文件名字被篡改。
    的頭像 發(fā)表于 06-25 13:54 ?671次閱讀
    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—<b class='flag-5'>SQL</b> Server數(shù)據(jù)庫(kù)被加密如何恢復(fù)數(shù)據(jù)?

    PLC通過(guò)智能網(wǎng)關(guān)實(shí)現(xiàn)HTTP協(xié)議通訊,先取得token后再提交獲取JSON格式的數(shù)據(jù)文件

    ‘$(barcode)’,則該數(shù)據(jù)的數(shù)值隨數(shù)據(jù)配置表中名稱為‘barcode’的數(shù)據(jù)實(shí)時(shí)更新; 根據(jù)當(dāng)前行的特殊前后綴的字段名稱,初始值配置完成特定功能: ⑴. 對(duì)接數(shù)據(jù)庫(kù)時(shí)在SQL命令語(yǔ)句中增加條件字符串
    發(fā)表于 06-17 16:07

    達(dá)夢(mèng)數(shù)據(jù)庫(kù)常用管理SQL命令詳解

    達(dá)夢(mèng)數(shù)據(jù)庫(kù)常用管理SQL命令詳解
    的頭像 發(fā)表于 06-17 15:12 ?7174次閱讀
    達(dá)夢(mèng)數(shù)據(jù)庫(kù)常用管理<b class='flag-5'>SQL</b>命令詳解

    大促數(shù)據(jù)庫(kù)壓力激增,如何一眼定位 SQL 執(zhí)行來(lái)源?

    語(yǔ)句成為了性能瓶頸。面對(duì)這樣的困境,本篇文章提出了對(duì) SQL 進(jìn)行 “染色” 的方法來(lái)幫助大家 一眼定位問(wèn)題 SQL,而無(wú)需再在多處邏輯中輾轉(zhuǎn)騰挪 。本文的思路主要受之前郭忠強(qiáng)老師發(fā)布的 如何一眼定位
    的頭像 發(fā)表于 06-10 11:32 ?565次閱讀
    大促數(shù)據(jù)庫(kù)壓力激增,如何一眼定位 <b class='flag-5'>SQL</b> 執(zhí)行來(lái)源?

    詳解TIA Portal SCL編程語(yǔ)言中的IF語(yǔ)句

    IF 語(yǔ)句是編程中最基本和最重要的控制結(jié)構(gòu)之一,它的主要作用是根據(jù)條件決定程序的執(zhí)行路徑,IF 語(yǔ)句是編程中實(shí)現(xiàn)邏輯判斷和決策的基礎(chǔ)。
    的頭像 發(fā)表于 05-24 15:01 ?1875次閱讀
    詳解TIA Portal SCL編程語(yǔ)言中的IF<b class='flag-5'>語(yǔ)句</b>

    STM32F407嵌入式SRAM映射為0x20020000,為什么?

    進(jìn)入。 我很奇怪,因?yàn)椴还苁且郧暗腎AP跳轉(zhuǎn)程序還是網(wǎng)上的跳轉(zhuǎn)程序,在這條語(yǔ)句上都是一致的,按理來(lái)說(shuō)最不應(yīng)該出問(wèn)題的就是這句語(yǔ)句。然后通過(guò)調(diào)試發(fā)現(xiàn),對(duì)地址取值按位或得到的數(shù)值為0x20020000
    發(fā)表于 03-10 08:24