聯合查詢是指將多個不同的查詢結果連接在一起組成一組數據的查詢方式。聯合查詢使用UNION關鍵字連接各個SELECT子句。說的簡單點,就是將兩個表當中的行合并成一個表當中去顯示。
合并查詢的特點:
1、合并的表中的列的個數、數據類型必須相同或相兼容可以轉換
2、UNION默認去掉重復值,如果允許有重復值需要使用UNION ALL
3、執行順序從左向右(可通過列的順序或空格改變結果集的排列順序)
例如:SELECT UserId,UserName?FROM?UserInfo
? ? ? ? ? ? UNION
? ? ? ? ? SELECT UserId,PayWay FROM OrderInfo ?/// ?SELECT ?' ?',PayWayFROMOrderInfo
4、可以與SELECT INTO 一起使用把合并的結果插入到新表中顯示,那么INTO 必須放在第一個SELECT 語句中
例如:SELECT ?UserId,UserName INTO newTables? FROM UserInfo
? ? ? ? ? ? UNION
? ? ? ? ? ?SELECT ?PayWay, UserId? FROM? OrderInfo
5、可以對合并的結果進行排序,但排序的ORDER BY 必須放在最后一個SELECT后面,所使用的列名
? ? ? 也必須是第一個SELECT語句。
合并查詢與連接查詢的區別:
合并查詢:結果集中的列由第一個表中的列決定,行的最大數量是兩個表行的“和” ? ?UNION
連接查詢:結果集中的列分別來自 不同的表,行的最大數量是它們的“乘積” ? ? ? ? ? ? ?INNER JOIN ON
注意:連接查詢時,如果沒有WHERE,將產生笛卡爾現象,即兩表中數據相乘。