簡體   English   中英

將具有相同 ID 的多行合二為一

[英]Joining multiple rows with same ID in one

我在使用 SQL 查詢時遇到問題。 我有兩張桌子。

我的第一張桌子:

+------------+-------------+---------------+
| id_mission | Some column | Other column  |
+------------+-------------+---------------+
|      1     |     ...     |      ...      |
|      2     |     ...     |      ...      |
+------------+-------------+---------------+

我的第二張桌子:

+------------+-------------+---------+
| id_mission | id_category | points  |
+------------+-------------+---------+
|          1 |           1 |       3 |
|          1 |           2 |       4 |
|          1 |           3 |       4 |
|          1 |           4 |       8 |
|          2 |           1 |      -4 |
|          2 |           2 |       3 |
|          2 |           3 |       1 |
|          2 |           4 |      -7 |
+------------+-------------+---------+

我想在我的SELECT請求中得到這種結果

+------------+-------------+--------------+---------------+----------------+
| id_mission | Some column | Other column | id_category 1 | id_category X  |
+------------+-------------+--------------+---------------+----------------+
|          1 |         ... |          ... |           ... |            ... |
|          2 |         ... |          ... |           ... |            ... |
+------------+-------------+--------------+---------------+----------------+

我在前兩列中嘗試過這個,但它不起作用,我也嘗試過GROUP_CONCAT ,它有效,但不是我想要的結果。

SELECT m.id_mission ,mc.id_category 1,mc1.id_category 2
from mission m 
left join mission_category mc on m.id_mission = mc.id_mission 
left join mission_category mc1 on m.id_mission = mc1.id_mission

有人能幫我嗎?

您可以使用條件聚合。 假設您要對每個類別的points值進行透視:

select 
    t1.*,
    max(case when t2.id_category = 1 then points end) category_1,
    max(case when t2.id_category = 2 then points end) category_2,
    max(case when t2.id_category = 3 then points end) category_3
from t1
inner join t2 on t2.id_mission = t1.id_mission
group by t1.id_mission
    

這假設id_missiont1的主鍵(否則,您需要在selectgroup by子句中枚舉所需的列)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM