【发布时间】:2021-08-01 06:51:28
【问题描述】:
我想要这样的东西(工作示例):
SELECT DISTINCT year FROM
(SELECT year FROM classbook WHERE year > 1
UNION ALL SELECT year + 1 as year FROM classbook WHERE year > 1) qu
ORDER BY year
我试过了:
SELECT DISTINCT year FROM
(SELECT year, year + 1 as year FROM classbook WHERE year > 1) qu
ORDER BY year
但这会抛出Duplicate column name 'year'。
实现此目的最简单(更简单)的方法是什么?
我正在使用 MySQL 数据库。
【问题讨论】:
-
最简单的是使用联合——你说它有效吗?您为什么要寻找其他解决方案?
-
SELECT year, year + 1 as year- 这就是问题所在。您不能有两个具有相同名称/别名的列。 -
用您正在使用的数据库标记您的问题。
-
@boisvert 因为更简单的代码更好。它包含更少的错误,更易于维护......它甚至可能更快(可能不在 SQL 中,因为它重新解释以进行优化)。