基本概念:將兩個具有相同字段數量的查詢語句的結果,以“上下堆疊”的方式,合并為一個查詢結果。本文主要和大家分享mysql聯合查詢實例,希望能幫助到大家。
可見:
-
兩個select語句的查詢結果的“字段數”必須一致;
-
通常,也應該讓兩個查詢語句的字段類型具有一致性;
-
也可以聯合更多的查詢結果;
語法形式:
select 語句1 union 【all | distinct】 select 語句2;
注意:
-
此聯合查詢語句,默認會“自動消除重復行”,即默認是distinct
-
如果想要將所有數據都顯示(允許重復行),就使用all
細節:
應該將這個聯合查詢的結果理解為最終也是一個“表格數據”,且默認使用第一個select語句中的字段名;
對比:
默認情況下,order by子句和limit子句只能對整個聯合之后的結果進行排序和數量限定:
select...?union?select...?order?by?XXX?limit?m,n;
例:
實現“全外連接”:
select??*?f?rom??表1??left??join?表2?on??條件unionselect??*?f?rom??表1??right??join?表2??on??條件
例:
結果為:
基本概念:將兩個具有相同字段數量的查詢語句的結果,以“上下堆疊”的方式,合并為一個查詢結果。
可見:
-
兩個select語句的查詢結果的“字段數”必須一致;
-
通常,也應該讓兩個查詢語句的字段類型具有一致性;
-
也可以聯合更多的查詢結果;
語法形式:
select 語句1 union 【all | distinct】 select 語句2;
注意:
-
此聯合查詢語句,默認會“自動消除重復行”,即默認是distinct
-
如果想要將所有數據都顯示(允許重復行),就使用all
細節:
應該將這個聯合查詢的結果理解為最終也是一個“表格數據”,且默認使用第一個select語句中的字段名;
對比:
默認情況下,order by子句和limit子句只能對整個聯合之后的結果進行排序和數量限定:
select...?union?select...?order?by?XXX?limit?m,n;
例:
實現“全外連接”:
select??*?f?rom??表1??left??join?表2?on??條件unionselect??*?f?rom??表1??right??join?表2??on??條件
例:
結果為:
相關推薦:
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END