mysql - 如何在 mySQL 中并排显示项目、组成员和他们的老板
问题描述
我想为我的所有记录显示(团队 ID、团队名称、实习生 ID、实习生姓名、记者 ID、记者姓名)。我不知道如何将同一团队的实习生和另一列的记者分开。我想这样做是因为我希望每个记者都为他们在该小组中工作的每个实习生提供评估。
解决方案
我认为您想要垂直“列表”的列。这不是真正的关系结构,因为行中的值彼此不相关。
但是,您可以使用条件聚合来做到这一点。但是,您需要枚举这些值。在 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;
推荐阅读
- javascript - Highcharts Spiderweb 图表 xAxis 标签在长标签名称上消失
- javascript - 无法将引导 JS 加载到 Electron 应用程序中
- javascript - hibext_instdsigdipv2 cookie 来自哪里?
- c++ - 达到限制后自动旋转值的自定义 qt spinbox
- linux - 如果字符串的出现每行恰好一次,如何删除一行?
- embedded-linux - QEMU 网络和 getty 问题
- kubernetes - 如何使用附加到主机的块设备作为 pod 内的块设备
- java - Java WatchService 可以同时监听多少个目录?
- javascript - 是否可以确保内容脚本注入的代码首先运行
- typescript - 使用 RegEx 在两个特殊字符中查找字符