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

时间:2015-08-01 20:03:26

标签: php mysql

我正在试图想象这个特定的情况。考虑患者到医院进行定期检查。首先,他访问内科,旁边是耳鼻喉科,ORTHOPEDIAC和药房,当他访问医院时,他访问内科和实验室以及耳鼻喉科和药房。 每位患者在访问医院时都会访问某些部门。

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。

1 个答案:

答案 0 :(得分:2)

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

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

如果您希望部门按特定顺序显示,请在order bygroup_concat内使用 group_concat(department order by department)

setContentView