我有一个包含患者信息(姓名、出生日期、出生日期等)的表格和一个包含他们服用药物列表的表格。(阿司匹林、克拉霉素等)这些表格由病人表格中的唯一id关联。所以,把玛丽·史密斯所有的药都拿出来就很容易了。
但是,我需要做的是显示一个分页的病人列表,显示他们的名字,病人表中的其他内容,并且有一个列,用行分隔他们的药物列表。大致来说,这:
如果我做一个简单的左连接,我会得到3行重复的Mary Smith,每行一种药物。
病人表可以有数千条记录,所以我不想查询所有的病人,然后遍历并获取他们的药物。而且,因为它是基于病人分页的,所以我不知道如何为页面获取正确的病人数量,以及他们的所有药物。
(患者/药物只是数据的一个粗略示例;因此,请不要建议重新构造数据的存储方式。)

最佳答案

去救援!

SELECT patients.first_name, patients.last_name, GROUP_CONCAT(prescriptions.medication SEPARATOR ", ") AS meds FROM patients LEFT JOIN prescriptions ON prescriptions.patient_id = patients.id GROUP BY patients.id;

09-20 10:31