聯(lián)合查詢是指將多個(gè)不同的查詢結(jié)果連接在一起組成一組數(shù)據(jù)的查詢方式。聯(lián)合查詢使用UNION關(guān)鍵字連接各個(gè)SELECT子句。說的簡單點(diǎn),就是將兩個(gè)表當(dāng)中的行合并成一個(gè)表當(dāng)中去顯示硝拧。
合并查詢的特點(diǎn):
1、合并的表中的列的個(gè)數(shù)葛假、數(shù)據(jù)類型必須相同或相兼容可以轉(zhuǎn)換
2河爹、UNION默認(rèn)去掉重復(fù)值,如果允許有重復(fù)值需要使用UNION ALL
3桐款、執(zhí)行順序從左向右(可通過列的順序或空格改變結(jié)果集的排列順序)
例如:SELECT UserId咸这,UserName?FROM?UserInfo
? ? ? ? ? ? UNION
? ? ? ? ? SELECT UserId,PayWay FROM OrderInfo ?/// ?SELECT ?' ?'魔眨,PayWayFROMOrderInfo
4媳维、可以與SELECT INTO 一起使用把合并的結(jié)果插入到新表中顯示,那么INTO 必須放在第一個(gè)SELECT 語句中
例如:SELECT ?UserId遏暴,UserName INTO newTables? FROM UserInfo
? ? ? ? ? ? UNION
? ? ? ? ? ?SELECT ?PayWay, UserId? FROM? OrderInfo
5侄刽、可以對合并的結(jié)果進(jìn)行排序,但排序的ORDER BY 必須放在最后一個(gè)SELECT后面朋凉,所使用的列名
? ? ? 也必須是第一個(gè)SELECT語句州丹。
合并查詢與連接查詢的區(qū)別:
合并查詢:結(jié)果集中的列由第一個(gè)表中的列決定,行的最大數(shù)量是兩個(gè)表行的“和” ? ?UNION
連接查詢:結(jié)果集中的列分別來自 不同的表,行的最大數(shù)量是它們的“乘積” ? ? ? ? ? ? ?INNER JOIN ON
注意:連接查詢時(shí)墓毒,如果沒有WHERE吓揪,將產(chǎn)生笛卡爾現(xiàn)象,即兩表中數(shù)據(jù)相乘所计。