mysql 表關聯時執行順序


left join  左連接

 1 with temp1 as (
 2 select 1 as id ,12 as num union 
 3 select 2 as id ,13 as num union 
 4 select 3 as id ,12 as num union 
 5 select 4 as id ,14 as num union 
 6 select 5 as id ,12 as num union 
 7 select 6 as id ,16 as num  
 8 ), temp2 as (
 9 select 1 as id ,'a' as var union 
10 select 2 as id ,'b' as var union 
11 select 3 as id ,'c' as var union 
12 select 4 as id ,'a' as var union 
13 select 5 as id ,'b' as var union 
14 select 6 as id ,'f' as var  
15 )
16 select  * from temp1 t1 left join temp2 t2 on t1.id =t2.id
View Code

 

left join  左連接 (on 中加條件)

說明:先關聯, 再過濾 ;

 1 with temp1 as (
 2 select 1 as id ,12 as num union 
 3 select 2 as id ,13 as num union 
 4 select 3 as id ,12 as num union 
 5 select 4 as id ,14 as num union 
 6 select 5 as id ,12 as num union 
 7 select 6 as id ,16 as num  
 8 ), temp2 as (
 9 select 1 as id ,'a' as var union 
10 select 2 as id ,'b' as var union 
11 select 3 as id ,'c' as var union 
12 select 4 as id ,'a' as var union 
13 select 5 as id ,'b' as var union 
14 select 6 as id ,'f' as var  
15 )
16 -- select  * from temp1 t1 left join temp2 t2 on t1.id =t2.id
17 select  * from temp1 t1 left join temp2 t2 on t1.id =t2.id and t1.num=12 
18 -- select  * from temp1 t1 left join temp2 t2 on t1.id =t2.id where t1.num=12
View Code

left join  左連接  (末尾 where 條件)

說明:最后過濾

 1 with temp1 as (
 2 select 1 as id ,12 as num union 
 3 select 2 as id ,13 as num union 
 4 select 3 as id ,12 as num union 
 5 select 4 as id ,14 as num union 
 6 select 5 as id ,12 as num union 
 7 select 6 as id ,16 as num  
 8 ), temp2 as (
 9 select 1 as id ,'a' as var union 
10 select 2 as id ,'b' as var union 
11 select 3 as id ,'c' as var union 
12 select 4 as id ,'a' as var union 
13 select 5 as id ,'b' as var union 
14 select 6 as id ,'f' as var  
15 )
16 -- select  * from temp1 t1 left join temp2 t2 on t1.id =t2.id
17 -- select  * from temp1 t1 left join temp2 t2 on t1.id =t2.id and t1.num=12 
18 select  * from temp1 t1 left join temp2 t2 on t1.id =t2.id where t1.num=12
View Code

 

left join  左連接  ( on 中加條件 & 末尾 where 條件)

 1 with temp1 as (
 2 select 1 as id ,12 as num union 
 3 select 2 as id ,13 as num union 
 4 select 3 as id ,12 as num union 
 5 select 4 as id ,14 as num union 
 6 select 5 as id ,12 as num union 
 7 select 6 as id ,16 as num  
 8 ), temp2 as (
 9 select 1 as id ,'a' as var union 
10 select 2 as id ,'b' as var union 
11 select 3 as id ,'c' as var union 
12 select 4 as id ,'a' as var union 
13 select 5 as id ,'b' as var union 
14 select 6 as id ,'f' as var  
15 )
16 select  * from temp1 t1 left join temp2 t2 on t1.id =t2.id and t1.num=12  where  t1.num=12
View Code

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM