union(联合)合并查询结果
?select??id,name,price?from?shops?where?price?>?150??union?select?id,name,price?from?shops??where?price<50
作用:把兩次或多次查詢結(jié)果合并在一起,可以來(lái)自多張表,多次sql語(yǔ)句時(shí)取出的列明不同,此時(shí)以第一個(gè)sql列明為準(zhǔn)
要求:?兩次查詢的列數(shù)一致
推薦:查詢的每一列對(duì)應(yīng)的列的類(lèi)型也相同,比如char類(lèi)型和tinyint類(lèi)型,會(huì)自動(dòng)轉(zhuǎn)換為blob二進(jìn)制
如果不同語(yǔ)句中取出的行有完全相同(每個(gè)列的值都相同),那么相同的行將會(huì)合并(去重復(fù))如果不去重復(fù),可以加all不去重復(fù)
select??id,name,price?from?shops?where?price?>?150??union?all?select?id,name,price?from?shops??where?price<50
如果語(yǔ)句中有order??by??、limit等,需要用括號(hào)包起來(lái),推薦把order?by放到全部語(yǔ)句最后,對(duì)最終合并后的結(jié)果排序,才能發(fā)揮排序作用,如:(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使用,會(huì)被語(yǔ)法分析器優(yōu)化分析時(shí)去掉
總結(jié)
以上是生活随笔為你收集整理的union(联合)合并查询结果的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 一、select查询
- 下一篇: 三、连接查询