【问题标题】:Joining tables and displaying columns with different conditions连接表并显示具有不同条件的列
【发布时间】:2016-06-22 23:25:01
【问题描述】:

我有 2 张桌子: CTU 包含列“course_id”、“user_id”和“date” NU 包含列 'name' 和 'id'

表 CTU 中的 user_id 与表 NU 中的 'id' 具有相同的信息。

我希望我的输出显示以下内容: 姓名 | course_id = 1 的日期 | course_id = 2 的日期

我可以通过一个简单的查询来显示前 2 列,但我不太了解 SQL JOIN 和子查询,所以我很难让最后一列显示。

【问题讨论】:

  • 请提供一些数据样本..

标签: sql join subquery


【解决方案1】:

像这样转出日期的一种方法是使用 group by 和聚合函数。像这样的东西怎么样:

SELECT
     n.name
    ,MAX(CASE WHEN c.course_id = 1 THEN c.date END) AS course_1_date
    ,MAX(CASE WHEN c.course_id = 2 THEN c.date END) AS course_2_date
FROM CTU as c
JOIN NU as n
  ON c.user_id = n.id
GROUP BY n.name

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-17
    • 2022-10-14
    • 2015-06-07
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多