【问题标题】:Join results of Duplicate column name 'year'加入重复列名“年份”的结果
【发布时间】: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 中,因为它重新解释以进行优化)。

标签: mysql sql select subquery


【解决方案1】:

您的第一个查询很好。您不需要子查询:

SELECT year
FROM classbook
WHERE year > 1
UNION   -- on purpose to remove duplicates
SELECT year + 1 as year
FROM classbook
WHERE year > 1
ORDER BY year

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-27
    • 1970-01-01
    • 2018-12-12
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 2018-10-02
    相关资源
    最近更新 更多