MySQL复合查询(重点)
复合查询是指在MySQL中使用多个查询语句结合在一起的操作,常见的复合查询类型包括UNION和UNION ALL。
UNION用于合并两个或多个SELECT语句的结果集,并消除重复行。UNION ALL也用于合并结果集,但不会消除重复行。
以下是使用UNION和UNION ALL的例子:
-- 使用UNION合并两个查询,并去除重复行
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;
-- 使用UNION ALL合并两个查询,不去除重复行
SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;
确保每个SELECT语句中的列数目相同,并且对应列的数据类型相同。
例如,有两个表employees
和contractors
,你想要获取所有员工和外包员工的列表,不包括重复记录:
SELECT name, position FROM employees
UNION
SELECT name, position FROM contractors;
如果你想要包含所有记录(包括重复),可以使用UNION ALL:
SELECT name, position FROM employees
UNION ALL
SELECT name, position FROM contractors;
请注意,在使用复合查询时,确保每个查询中的列数据类型相同,以及ORDER BY语句(如果需要)只能在最后一个查询中使用,因为它会应用于整个结果集。
评论已关闭