从头开始学MySQL--------合并查询(6)
7.6.1 合并查询结果集
如果使用UNION ALL 可以连接多条查询语句,并将它们的结果集组合起来。
语法为
SELECT column ,... FROM table1
UNION [ ALL ]
SELECT column ,... FROM table2
不加ALL的效果:返回结果中删除重复的记录。
使用关键字ALL的作用是不删除重复行也不对结果进行自动排序。
合并时,两个表对应的列和数据类型必须相同。
UNION 和 UNION ALL 的区别
使用UNION ALL 的功能是不删除重复的行,因此他只是单纯的把多个查询语句的结果合并起来,它执行SQL的时候需要的资源少,所以尽可能的使用它。
如果希望保留重复的行或者确定不会有重复的行的时候,合并查询结果集的关键字用UNION ALL 来提高效率。
SELECT * FROM t_student;
SELECT id,name,teacherId FROM t_student WHERE id = 1
UNION ALL
SELECT id,name,teacherId FROM t_student WHERE id = 2
7.7 为表和字段取别名
在字段或表后面加上AS即可,也可以省略,最好加上。
SELECT
stu.name AS 学生名,
tec.teacName AS 导师名
FROM
t_student AS stu
JOIN t_teacher AS tec ON stu.teacherId = tec.id
7.8 ORDER BY 与 LIMIT 顺序
ORDER BY 在 FROM 后面
LIMIT 在 ORDER BY 后面
解释
首先是查询出来一些杂乱无章的结果,然后再将其排序好,最后再把这些排序好的数据取指定条数,这样子是最符合逻辑的。就像初中刚开始分座位一样,先按高矮个子排队,再取指定的个数,比如前4个人做第一排。
SELECT * FROM t_student
ORDER BY id DESC
LIMIT 0,4