列对齐与 DISTINCT要点
- 所有 SELECT 必须返回相同列数,否则直接报错
- 最终结果的列名取自第一条 SELECT,与后面无关
- 对应位置的类型要能兼容转换,别把日期对到数字
- UNION 自带去重,等价于在末尾隐式 DISTINCT
- 想对合并结果整体去重可用 UNION,局部去重用子查询 DISTINCT
- 列顺序错位是常见 bug:第 2 条的第 1 列对到第 1 条第 1 列
列对齐与 DISTINCT示例
SELECT name, city FROM shop WHERE region = 'east'
UNION
SELECT contact, city FROM warehouse WHERE region = 'east'
ORDER BY city;
避坑提醒:列名看第一条 SELECT,所以别名和含义都要在第一条里定义好;后面 SELECT 只要列数、位置、类型对得上即可。