union(联合)合并查询结果
?select??id,name,price?from?shops?where?price?>?150??union?select?id,name,price?from?shops??where?price<50
作用:把兩次或多次查詢結果合并在一起,可以來自多張表,多次sql語句時取出的列明不同,此時以第一個sql列明為準
要求:?兩次查詢的列數一致
推薦:查詢的每一列對應的列的類型也相同,比如char類型和tinyint類型,會自動轉換為blob二進制
如果不同語句中取出的行有完全相同(每個列的值都相同),那么相同的行將會合并(去重復)如果不去重復,可以加all不去重復
select??id,name,price?from?shops?where?price?>?150??union?all?select?id,name,price?from?shops??where?price<50
如果語句中有order??by??、limit等,需要用括號包起來,推薦把order?by放到全部語句最后,對最終合并后的結果排序,才能發揮排序作用,如:(select??id,name,price?from?shops?where?price?>?150??order?by?id?desc)?union?all?(select?id,name,price?from?shops??where?price<50?order?by?id?desc)??order?by?id?desc;
在子句中如果order?by?不配合limit使用,會被語法分析器優化分析時去掉
總結
以上是生活随笔為你收集整理的union(联合)合并查询结果的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一、select查询
- 下一篇: 三、连接查询