Mysql 将具有相同ID的多行合并到一个
我在SQL查询方面遇到问题。我有两张桌子 我的第一张桌子:Mysql 将具有相同ID的多行合并到一个,mysql,sql,join,pivot,Mysql,Sql,Join,Pivot,我在SQL查询方面遇到问题。我有两张桌子 我的第一张桌子: +------------+-------------+---------------+ | id_mission | Some column | Other column | +------------+-------------+---------------+ | 1 | ... | ... | | 2 | ... | ...
+------------+-------------+---------------+
| 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\u CONCAT
,它起作用,但不是我想要的结果
选择m.id\U任务、mc.id\U类别1、mc1.id\U类别2
来自m团
在m.id\U任务=mc.id\U任务上左加入任务\U类别mc
在m.id\U任务=mc1.id\U任务上左加入任务类别mc1
有人能帮我吗?您可以使用条件聚合。假设您希望按类别旋转
点
值:
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\u mission
是t1
的主键(否则,您需要在select
和groupby
子句中枚举所需的列)。您对结果集的描述与第一个表相同。需要更多的细节和解释。thta是一个简单的示例如何构建数据透视表如果您需要帮助,您必须提供示例数据,而不仅仅是----