联合查询是指将多个不同的查询结果连接在一起组成一组数据的查询方式。联合查询使用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,将产生笛卡尔现象,即两表中数据相乘。
网友评论