程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL的學習--join和union的用法

MySQL的學習--join和union的用法

編輯:MySQL綜合教程

感覺工作之後一直在用框架,數據庫的一些基本的東西都忘記了,這次借著這個系列的博客回顧一下舊知識,學一點新知識。

今天就先從join和union開始。

join 是兩張表做交連後裡面條件相同的部分記錄產生一個記錄集, 
union是產生的兩個記錄集並在一起,成為一個新的記錄集 。

join

可以通過下面這張圖來了解join命令

 

 

 

union

 

要求:兩次查詢的列數必須一致

推薦:列的類型可以不一樣,但推薦查詢的每一列,想對應的類型以一樣

可以來自多張表的數據:多次sql語句取出的列名可以不一致,此時以第一個sql語句的列名為准。

如果不同的語句中取出的行,有完全相同(這裡表示的是每個列的值都相同),那麼union會將相同的行合並,最終只保留一行。也可以這樣理解,union會去掉重復的行。

如果不想去掉重復的行,可以使用union all。

如果子句中有order by,limit,需用括號()包起來。推薦放到所有子句之後,即對最終合並的結果來排序或篩選。

如:(select * from a order by id) union (select * from b order id);

在子句中,order by 需要配合limit使用才有意義。如果不配合limit使用,會被語法分析器優化分析時去除。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved