1. 程式人生 > >mysql中left join .. and 與 where的區別

mysql中left join .. and 與 where的區別

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操作結果。