mysql 组合查询_MySQL组合查询教程
#MYSQL#這是我MySQL的第八篇教程。本篇主要介紹的是MySQL的組合查詢的用法。在大多數(shù)的SQL查詢中都只包含從一個或者多個表中返回數(shù)據(jù)的單條SELECT語句,MySQL其實也支持允許執(zhí)行多條SELECT語句,并將結(jié)果作為單個結(jié)果集返回,這些組合查詢通常稱為并(union)或者叫做復(fù)合查詢。
組合查詢也有他的使用場景,第一個就是在單個查詢中從不同的表返回類似結(jié)構(gòu)的數(shù)據(jù)時,第二個就是在復(fù)單個表執(zhí)行多個查詢,按單個查詢返回數(shù)據(jù)。在多數(shù)的情況下組合相同表的兩個查詢完成的工作與多個WHERE子句條件的單條查詢完成的工作是相同的。
首先來看一下如何創(chuàng)建組合查詢,在創(chuàng)建組合查詢的時候使用的操作符是UNION,利用UNION來將多條SELECT語句進(jìn)行關(guān)聯(lián),他所作的很簡單,就這在多條SELECT語語句之間加上UNION就可以了。
舉一個例子,假如需要查詢價格小于等于5的所有物品的一個列表,而且還想查詢出供應(yīng)商編號為1001和1002的所有物品,就可以使用UNION來連接兩個SELECT的查詢語句,在這里就做到魚和熊掌可兼得的事情。這條語句就是由兩條SELECT語句組成,中間使用UNION來進(jìn)行連接,
union的使用規(guī)則,union組合查詢是非常容易實現(xiàn)的,但是有幾點需要注意,第一就是UNION必須由兩條或者兩條以上的SELECT語句組成,一條也就不叫組了。第二點,UNION中的每個查詢必須包含相同的列,表達(dá)式或者聚集函數(shù)。
UNION的另外一個功能就是包含或者取消重復(fù)的行。union從查詢結(jié)果集中自動去除了重復(fù)的行,換句話說就是他的行與單條的SELECT語句中使用多個WHERE子句條件是一樣的。這是UNION的默認(rèn)功能,但是如果需要可以改變他,就是說如果需要匹配所有的行,可以使用UNION ALL而不是UNION. 在使用UNION ALL時MySQL不取消重復(fù)的行。
UNION的另外一個用處就是可以對組合結(jié)果進(jìn)行排序,在SELECT語句中輸出的結(jié)果集需要排序是使用ORDER BY子句,它必須出現(xiàn)在最后一條的SELECT語句之后,對于組合查詢的結(jié)果集來說,不存在用一直方式排序,而且在使用組合排序的時候只能使用一次ORDER BY排序,不管你有幾條SELECT語句進(jìn)行組合。
在這條UNION語句當(dāng)中最后一個SELECT語句使用 了,ORDER BY子句,雖然ORDER BY子句似乎只是最后一個SELECT語句的專屬,但是實際上他是對整體的結(jié)果集進(jìn)行了排序,而不單單只是對最后一個SELECT語句進(jìn)行排序的。
以上內(nèi)容就是全部的組合查詢UNION的使用方法和注意事項,希望對你在日常開發(fā)過程中能有所幫助。
總結(jié)
以上是生活随笔為你收集整理的mysql 组合查询_MySQL组合查询教程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php全局变量的关键字,php的stat
- 下一篇: 三诺+n20g+微型计算机,原来是他?揭