left join on 和where條件的放置

2021-09-08 15:08:26 字數 501 閱讀 4900

select * from

tdleft join (

select case_id as sup_case_id , count(*) supervise_number from 

td_kcdc_case_sup_info 

group by  case_id

) sup

on  

sup.sup_case_id = td.case_id

where 1=1   /*不能去掉, 否則認為and 後的條件為 聯合查詢時的條件, 不能起過濾作用,由於left join因此td表中記錄將全部查出來*/

and td.con = '***x'             

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

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

**:

left join on 和where條件的放置

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 201...

SQL語法 left join on 多條件

重點 先匹配,再篩選where條件。本文將通過幾個例子說明兩者的差別。表1 product idamount 1100 2200 3300 4400 表2 product details idweight exist222 04441 55506 661單個條件 select from produc...

left join on多個條件怎麼寫

有時我們不僅需要用乙個欄位去關聯,還希望兩個表的兩個欄位都是一樣的,這時候可以這樣寫 select from select id,name,code from table1 aleft join select id,name,code from table2 bon a.id b.id and a....