mysql中left join .. and 與 where的區別
阿新 • • 發佈:2018-12-20
t1表:
t2表:
left join結果: select t1. id ,t1. name ,t2. id ,t2. name from t1 left join t2 on t1. id =t2. id
使用and : (先篩選後進行連線操作) (這裡先篩選出t1.id=3的記錄之後與t1表進行連線, 左表記錄還是存在) select t1. id ,t1.
name
,t2.
id
,t2.
name
from
t1
left join
t2
on
t1.
id
=t2.
id
and
t1.
id
=
3
;
結果:
使用where : (先進行左連線,之後進行篩選,所以只有一條記錄) select t1. id ,t1. name ,t2. id ,t2. name from t1 left join t2
on
t1.
id
=t2.
id
where
t1.
id
=
3
;
結果:
PS: 如果是inner join,則and與where操作效果一樣,都是where操作結果。
t2表:
left join結果: select t1. id ,t1. name ,t2. id ,t2. name from t1 left join t2 on t1. id =t2. id
使用and : (先篩選後進行連線操作) (這裡先篩選出t1.id=3的記錄之後與t1表進行連線, 左表記錄還是存在) select t1. id ,t1.
使用where : (先進行左連線,之後進行篩選,所以只有一條記錄) select t1. id ,t1. name ,t2. id ,t2. name from t1 left join t2
PS: 如果是inner join,則and與where操作效果一樣,都是where操作結果。