连接表并显示具有不同条件的列

时间:2016-06-22 23:25:02

标签: sql join subquery

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

表CTU中的

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

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

的日期

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

1 个答案:

答案 0 :(得分:0)

将这样的日期转出的一种方法是使用group by和aggregate函数。这样的事情怎么样:

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