首頁 後端開發 php教程 關於left join on 和where條件放置的相關講解

關於left join on 和where條件放置的相關講解

May 09, 2018 am 09:13 AM
join left where

left join on 和where條件的放置問題在php中很重要,本篇會詳解其相關知識。

left join裡面帶and的查詢

SELECT p.pname,p.pcode,s.saletime from product as p left join sales_detail as s on (s.pcode=p.pcode) and s.saletime in ('2012-07-23','2012-07-05');

查出來的結果:

------- ------- ------------

| pname | pcode | saletime   |

-- ----- ------- ------------

| A     | AC    | 2012-07-23 |

| A     | AC    | 2012-07-05 |

| A     | AC    | 2012-07-05 |

| B     | DE   | NULL | B     | DE   |

NULL

| | C     | XXX   | NULL       |

# ------- ------- ------------

直接where條件查詢

SELECT p.pname,p.pcode,s.saletime from product as p left join sales_detail as s on (s.pcode=p.pcode) where s.saletime in ('2012-07-23', '2012-07-05');

查詢出來的結果

------- ------- ----------- -

| pname | pcode | saletime   |

------- ------- ------------

| A     | AC    | 2012-07-23 |

| A     | AC    | 2012-07-05 |

| A   #  | AC #  | AC # 2015 |

------- ------- ------------


結論:on中的條件關聯,一表資​​料不符合條件時會顯示空值。 where則輸出兩表完全滿足條件數據


left join裡面的條件:會以左表的基準數據,凡左表出現的數據均要出現,然後再進行join右表,只要關聯上的就需要查出來,如果對應的欄位沒有值或不符合條件的話就置為NULL。

SELECT p.pname,p.pcode,s.saletime from product as p left join sales_detail as s on (s.pcode=p.pcode) ;光左連接的話顯示的內容如下


# ------- ------- ------------

| pname | pcode | saletime   |

------- ------- ------------

| A     | AC    | 2012-07-23 |

| A     | AC    | 2012-07-05 |

| A     | AC    | 2012-07-05 |

# #| B    | 2012-07-05 |

o #| B     | 2012-0  |這裡面有值

| C     | XXX   | NULL       |  這裡面沒有值

------- ------- --------- ---

有值但是不符合條件的話就置為NULL。如果沒有值肯定為NULL

如果是where條件的話就一定是要滿足才行。

應用場景:例如有個主表,那以主表為基準去顯示資料可以考慮left join的方式處理

總結:


1.對於left join,不管on後面跟什麼條件,左表的數據全部查出來,因此要想過濾需把條件放到where後面

2. 對於inner join,滿足on後面的條件表的數據才能查出,可以起到過濾作用。也可以把條件放到where後面。

SQL中on條件與where條件的差異


       資料庫在連接兩張或多張表來傳回記錄時,都會產生一張中間的臨時表,然後再將這張臨時表回傳給使用者。

      使用left jion時,on和where條件的差異如下:

1、on條件是產生臨時表時所使用的條件,它不管on中的條件是否為真,都會傳回左邊表中的記錄。

2、where條件是在臨時表生成好後,再過濾臨時表的條件。這時已經沒有left join的意思(必須回傳左邊表的記錄)了,條件不為真的就全部過濾掉。

本篇對left join 和where條件的放置相關的知識做出了講解,更多的學習資料清關注p​​hp中文網即可觀看。

相關推薦:

關於php mysql模糊查詢功能的相關知識

透過php實作複製移動檔案的方法

關於jQuery 效果- 隱藏和顯示的相關知識

以上是關於left join on 和where條件放置的相關講解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

MySql中如何使用JOIN MySql中如何使用JOIN Jun 04, 2023 am 08:02 AM

JOIN的意思就如英文單字「join」一樣,連接兩張表,大致分為內連接,外連接,右連接,左連接,自然連接。先建立兩個表,以下用於範例CREATETABLEt_blog(idINTPRIMARYKEYAUTO_INCREMENT,titleVARCHAR(50),typeIdINT);SELECT*FROMt_blog;+----+-------+--------+| id|title|typeId|+----+-------+--------+|1|aaa|1||2|bbb|2||3|ccc|3|

left鍵盤是哪個鍵 left鍵盤是哪個鍵 Mar 13, 2023 pm 02:27 PM

left鍵盤是方向左鍵,right是方向右鍵,一般情況下鍵盤以符號或箭頭代替,個別鍵盤有使用英文標註;鍵盤是用於操作設備運行的一種指令和數據輸入裝置,也指經過系統安排操作一台機器或設備的一組功能鍵。

MySQL Join使用原理是什麼 MySQL Join使用原理是什麼 May 26, 2023 am 10:07 AM

Join的類型leftjoin,以左表為驅動表,以左表作為結果集基礎,連接右表的資料補齊到結果集中rightjoin,以右表為驅動表,以右表作為結果集基礎,連接左表的資料補齊到結果集中innerjoin,結果集取兩個表的交集fulljoin,結果集取兩個表的並集mysql沒有fulljoin,union取代union與unionall的區別為,union會去重crossjoin笛卡爾積如果不使用where條件則結果集為兩個關聯表行的乘積與,的差異為,crossjoin建立結果集時會根據on條件過

Laravel 集合中的 Where 方法實用指南 Laravel 集合中的 Where 方法實用指南 Mar 10, 2024 pm 04:36 PM

Laravel集合中的Where方法實用指南在Laravel框架的開發過程中,集合(Collection)是一個非常有用的資料結構,它提供了豐富的方法來操作資料。其中,Where方法是常用的篩選方法,能夠根據指定條件來過濾集合中的元素。本文將介紹Laravel集合中Where方法的使用,透過具體的程式碼範例來示範其用法。 1.基本用法Where方法的

MySQL中JOIN怎麼用 MySQL中JOIN怎麼用 Jun 03, 2023 am 09:30 AM

簡介A的獨有+AB的公有B的獨有+AB的公有AB的公有A的獨有B的獨有A的獨有+B的獨有+AB的公有A的獨有+B的獨有練習建表部門表DROPTABLEIFEXISTS`dept`;CREATETABLE`dept`(`dept_id`int(11)NOTNULLAUTO_INCREMENT,`dept_name`varchar(30)DEFAULTNULL,`dept_number`int(11)DEFAULTN =InnoDBAUT

mysql的join查詢和多次查詢方法是什麼 mysql的join查詢和多次查詢方法是什麼 Jun 02, 2023 pm 04:29 PM

join查詢和多次查詢比較MySQL多表格關聯查詢效率高點還是多次單表查詢效率高?在資料量不夠大的時候,用join沒有問題,但是一般都會拉到service層上去做第一:單機資料庫運算資源很貴,資料庫同時要服務寫讀,都需要消耗CPU,為了能讓資料庫的吞吐變得更高,而業務又不在乎那幾百微妙到毫秒級的延時差距,業務會把更多計算放到service層做,畢竟計算資源很好水平擴展,數據庫很難啊,所以大多數業務會把純運算操作放到service層做,而將資料庫當成有事務能力的kv系統來使用,這是一種重業務,

Laravel 集合如何使用 Where 方法 Laravel 集合如何使用 Where 方法 Mar 10, 2024 pm 10:21 PM

Laravel集合中如何使用Where方法Laravel是一個流行的PHP框架,它提供了豐富的功能和工具,方便開發者快速建立應用程式。其中,集合(Collection)是Laravel中一個非常實用且強大的資料結構,開發者可以使用集合對資料進行各種操作,例如過濾、映射、排序等。在集合中,Where方法是一個常用的方法,用於根據指定的條件過濾集

從入門到精通:掌握is與where選擇器的使用技巧 從入門到精通:掌握is與where選擇器的使用技巧 Sep 08, 2023 am 09:15 AM

從入門到精通:掌握is與where選擇器的使用技巧引言:在進行資料處理與分析的過程中,選擇器(selector)是一項非常重要的工具。透過選擇器,我們可以按照特定的條件從資料集中提取所需的資料。本文將介紹is和where選擇器的使用技巧,幫助讀者快速掌握這兩個選擇器的強大功能。一、is選擇器的使用is選擇器是一種基本的選擇器,它允許我們根據給定條件對資料集進

See all articles