2016-06-22 48 views
0

我有2個表: CTU包含列「COURSE_ID」,「USER_ID」和「日期」 NU包含列「名稱」和「ID」表連接表並顯示列在不同條件

USER_ID CTU與表NU中的'id'具有相同的信息。

我希望我的輸出顯示以下內容: name |日期where course_id = 1 | date where course_id = 2

我可以得到前兩列出現一個簡單的查詢,但我不明白SQL JOIN的和子查詢非常好,所以我很難得到最後一列顯示。

+0

PLZ提供一些數據樣本.. – Esty

回答

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 
+0

感謝corymtak,工作。非常感激! – pseudoforker