哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

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

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

掃碼添加小助手

加入工程師交流群

來自丨blog.csdn.net/wqc19920906/article/details/79785424

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

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

運行sql :

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

運行sql :

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

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

兩條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的過程:1、中間表on條件:

tab1.size = tab2.size

2、再對中間表過濾where 條件:

tab2.name=’AAA’

第二條SQL的過程:1、中間表on條件:

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

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

責任編輯:haq

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

    關注

    1

    文章

    807

    瀏覽量

    46906
  • 數(shù)據(jù)庫

    關注

    7

    文章

    4078

    瀏覽量

    68519
  • SQL語句
    +關注

    關注

    0

    文章

    19

    瀏覽量

    7250

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

文章出處:【微信號:AndroidPush,微信公眾號:Android編程精選】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    NineData SQL AI 智能補全上線:寫 SQL,不必每次都從頭敲

    NineData推出SQLAI智能補全功能,通過AI技術實現(xiàn)上下文感知的SQL語句智能提示。該功能不僅能補全關鍵字,還能根據(jù)當前輸入內(nèi)容預測后續(xù)查詢意圖,顯著提升多表關聯(lián)、復雜條件等場景下的編寫效率
    的頭像 發(fā)表于 04-01 20:19 ?247次閱讀
    NineData <b class='flag-5'>SQL</b> AI 智能補全上線:寫 <b class='flag-5'>SQL</b>,不必每次都從頭敲

    SQL分析選型:DMS/DAS與NineData該如何選擇

    阿里云 DMS 的慢SQL 趨勢、DAS 的 SQL 審計能力成熟,可滿足阿里云用戶基礎需求。NineData 側重跨云統(tǒng)一工作臺、研發(fā)與 DBA 協(xié)同,打通慢日志分析、性能診斷、規(guī)范審核、索引建議全鏈路,更適配企業(yè)級慢查詢持續(xù)治理。
    的頭像 發(fā)表于 03-25 17:20 ?1517次閱讀
    慢<b class='flag-5'>SQL</b>分析選型:DMS/DAS與NineData該如何選擇

    哪些人更適合用 NineData 社區(qū)版的慢 SQL 功能:DBA、后端、SRE,還是技術負責人?

    本文只討論在 MySQL 慢 SQL 場景下的使用邊界。NineData 社區(qū)版支持離線部署、Docker 單機部署,數(shù)據(jù)庫 DevOps 提供 10 個數(shù)據(jù)源可用額度,核心功能與專業(yè)版保持一致。如果團隊要的是分布式集群、跨區(qū)域災備、靈活擴展和 SLA,那屬于企業(yè)版范圍,這里不展開。
    的頭像 發(fā)表于 03-19 23:15 ?361次閱讀

    NineData 社區(qū)版的慢SQL分析,比查看日志+看EXPLAIN適合中小團隊

    本文探討 NineData 社區(qū)版在 MySQL 慢 SQL 場景對中小團隊的適用性。與 “查看日志 + 看 EXPLAIN” 傳統(tǒng)方式不同,它將慢 SQL 按模板聚合,能從大盤、模板、診斷等多維
    的頭像 發(fā)表于 03-17 14:07 ?104次閱讀
    NineData 社區(qū)版的慢<b class='flag-5'>SQL</b>分析,比查看日志+看EXPLAIN適合中小團隊

    MySQL 慢 SQL 排查這件事,NineData 社區(qū)VS DBeaver/ Navicat 技術分析

    DBeaver Community 和 Navicat Premium Lite 都是很有價值的客戶端工具,在單條 SQL 的查詢和驗證上,依然是 DBA 最順手的入口。 但 NineData
    的頭像 發(fā)表于 03-17 11:53 ?111次閱讀
    MySQL 慢 <b class='flag-5'>SQL</b> 排查這件事,NineData 社區(qū)VS DBeaver/ Navicat 技術分析

    條件的執(zhí)行語句

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

    C語言的分支結構介紹

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

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

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

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

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

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

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

    Unicore標準NEMA語句GSA及說明

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

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

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

    達夢數(shù)據(jù)庫常用管理SQL命令詳解

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

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

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

    詳解TIA Portal SCL編程語言中的IF語句

    IF 語句是編程中最基本和最重要的控制結構之一,它的主要作用是根據(jù)條件決定程序的執(zhí)行路徑,IF 語句是編程中實現(xiàn)邏輯判斷和決策的基礎。
    的頭像 發(fā)表于 05-24 15:01 ?2101次閱讀
    詳解TIA Portal SCL編程語言中的IF<b class='flag-5'>語句</b>
    万州区| 府谷县| 彭阳县| 互助| 汉沽区| 麦盖提县| 吉木乃县| 灵台县| 新源县| 屯昌县| 德化县| 绥棱县| 定结县| 新密市| 沁水县| 临洮县| 正阳县| 津南区| 佛冈县| 河间市| 丰顺县| 余姚市| 陆良县| 瑞安市| 泸州市| 邵武市| 平安县| 石狮市| 云龙县| 睢宁县| 新津县| 嫩江县| 金阳县| 双辽市| 南川市| 通州区| 乐安县| 合阳县| 辽阳市| 莱西市| 漯河市|