union查询就是把2条或多条sql的查询结果合并成1个结果集

sql1 N行
sql2 M行
sql1 union sql2 N+M行

场景:2条语句 各自的where条件非常复杂 可以简化成简单条件 再union

union的语句必须满足一个条件 即各语句取出的列数相同

union all 可以避免union的合并


简单例子
MySQL入门笔记 —— 026 union查询


两表的union

1、先取出两表
MySQL入门笔记 —— 026 union查询
2、取出两表id
MySQL入门笔记 —— 026 union查询
3、union两表的id
MySQL入门笔记 —— 026 union查询


另一个例子

1、建立了表a和表b,取出
MySQL入门笔记 —— 026 union查询
2、union
MySQL入门笔记 —— 026 union查询
3、避免union的合并,用union all可避免合并
MySQL入门笔记 —— 026 union查询


讨论:union的子句中,不用写order by
sql合并后得到的总的结果 可以用order by
但子句的order by失去意义
MySQL入门笔记 —— 026 union查询
order by可用于最后union完进行排序
MySQL入门笔记 —— 026 union查询

相关文章: