首页 > 解决方案 > 如何在 mySQL 中并排显示项目、组成员和他们的老板

问题描述

我想为我的所有记录显示(团队 ID、团队名称、实习生 ID、实习生姓名、记者 ID、记者姓名)。我不知道如何将同一团队的实习生和另一列的记者分开。我想这样做是因为我希望每个记者都为他们在该小组中工作的每个实习生提供评估。 我的桌子的图像

标签: mysqlsqldatabasepivotrdbms

解决方案


我认为您想要垂直“列表”的列。这不是真正的关系结构,因为行中的值彼此不相关。

但是,您可以使用条件聚合来做到这一点。但是,您需要枚举这些值。在 MySQL 8+ 中,这很容易使用row_number(),因此查询如下所示:

select teamid, teamname,
       max(case when ptype = 'intern' then peopleid end) as intern,
       max(case when ptype = 'reporter' then peopleid end) as reporter
from (select t.*,
             row_number() over (partition by teamid, ptype order personid) as seqnum
      from t
     ) t
group by teamid, teamname, seqnum;

推荐阅读