php - 列出第二列的所有公共(public)值,后跟 mysql 中第一个值中的唯一名称

标签 php mysql

我正在尝试形象化这种特定情况。考虑一位患者去医院进行定期检查。首先,他参观了内科,然后是耳鼻喉科、骨科和药房,另一次,当他参观医院时,他参观了内科、实验室、耳鼻喉科和药房。 每个患者在访问医院时都会访问某些科室。


PatientName Department
Alice       INTERNAL
Alice       ENT
Alice       ORTHO
Alice       PHARMACY
Bob         Internal
Bob         ORTHO
Bob         PHARMACY

现在我如何根据独特用户以这种格式旅行的部门获得 cvs 中的部门,如

INTERNAL, ENT, ORTHO, PHARMACY
INTERNAL, ORTHO, PHARMACY
SKIN, EYE, OPERATION, PHARMACY
INTERNAL, , , 
...
...
MEDICAL, NEURO, PSYCH, PHARMACY
...
...

什么规则集(即 sql 查询)将以表格形式提供此输出?下载后我可以将其转换为 csv。

最佳答案

您可以使用 group_concat 为每个用户检索以逗号分隔的部门列表。

select PatientName, group_concat(Department)
from mytable
group by PatientName

如果您希望部门以特定顺序出现,则在 group_concat 中使用 order by

 group_concat(department order by department)

关于php - 列出第二列的所有公共(public)值,后跟 mysql 中第一个值中的唯一名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31765695/

相关文章:

php - 如何显示我的作业的整个表,包括我必须从 mySQL Workbench 创建到 php 的类别?

mysql - 无法在MySQL中获得计算机的主机名

php - CollectionType 中的 EntityType : Get current object inside query_builder

php - joomla 下拉菜单中的几个月数据

php - Laravel如何在自动重定向验证后发送参数以查看

javascript - 来自临时路径的 PHP 流文件?

php - 从mysql中选择多个数组

mysql - 返回左表中的所有行,即使右表中没有记录以及右表中的最大到期日期

php - ffmpeg - 使用默认字幕将 mkv 转换为 mp4

php - 比在配置文件中以纯文本形式存储 mysql 密码更好的方法?