mysql中交集,並集,差集,左連接,右連接


以下內容轉自:http://blog.csdn.net/Mikefei007/article/details/53888100

 學習mysql也有一個月啦,在這個月中,都是按照需求對數據表進行一些基本操作,在這個過程當中,經常使用到左連接,右連接,交集,取差集等,現在對其基本操作進行歸納總結。

數據源:

表一:                                                           

id    name     sex age                            

1 mike1男  34                               
1 mike2  男 23                             
1 mike3  女 24                               
2 mike1  男 46                               
2 mike2  男 35
2 mike3  男 42
2 mike4  男 62
3 mike1  女 45
4 mike5  男 72
5 mike4  女 23

 

    表二:

id  school

1   北京大學

2  清華大學

3  哈佛大學

7  MIT

 

 

左連接:根據某個等值條件,對表進行連接。本實驗是在id相同的情況下進行左連接

code:

 

[sql]  view plain  copy
 
  1. select a.*,b.school   
  2. FROM   
  3. (SELECT * FROM mike1.test001) a  
  4. LEFT JOIN  
  5. (SELECT id,school FROM mike1.test003 ) b  
  6. ON a.id=b.id  

結果如下:以表1為根基,對表2進行連接,匹配相同的id號

 



右連接:以表2為根基,通過id相同的字段對其進行右連接。

code:

 

[html]  view plain  copy
 
  1. select a.*,b.school   
  2. FROM   
  3. (SELECT * FROM mike1.test001) a  
  4. right JOIN  
  5. (SELECT id,school FROM mike1.test003 ) b  
  6. ON a.id=b.id  

結果:

你們覺得結果是有問題還是沒有問題呢?  請留言

 

交集:通過id號相同,對表1和表2進行內連接,取相同的部分,不相同的部分省略掉。

code:

 

[sql]  view plain  copy
 
  1. select a.*,b.school   
  2. FROM   
  3. (SELECT * FROM mike1.test001) a  
  4. inner JOIN  
  5. (SELECT id,school FROM mike1.test003 ) b  
  6. ON a.id=b.id  



 

結果:

 

差集:差集用的還是比較多的,類似於我們數學中學的,交、合、並等集合的操作。

 

code1:取表2與表1相同的部分,是我們上面取交集的第二種方法。

 

[sql]  view plain  copy
 
  1. select a.id,a.name,a.sex,a.age,b.school   
  2. FROM   
  3. (SELECT * FROM mike1.test001) a  
  4. LEFT OUTER join  
  5. (SELECT id,school FROM mike1.test003 ) b  
  6. ON a.id=b.id  
  7. WHERE b.id IS NOT null  

 

結果:

code2:取表1中的id在表2中的id的差值,最后列出數據。

 

[sql]  view plain  copy
 
  1. select a.id,a.name,a.sex,a.age,b.school   
  2. FROM   
  3. (SELECT * FROM mike1.test001) a  
  4. LEFT OUTER join  
  5. (SELECT id,school FROM mike1.test003 ) b  
  6. ON a.id=b.id  
  7. WHERE b.id IS  null  

結果:

 


免責聲明!

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



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