USERS (医師と看護師)、PATIENTS、および ASSIGNMENTS テーブルを含むデータベースがあります。
USERS (id, etc.)
PATIENTS (id, doctorid, etc.)
ASSIGNMENTS (id, patientid, doctorid, nurseid, etc.)
医師がログインすると、患者のリストと、その患者に割り当てられた NURSE または NURSES を確認する必要があります。結果は次のようになります。
+--------------------+--------------------+-------------------+
| patient first name | patient last name | assigned nurses |
+--------------------+--------------------+-------------------+
| john | doe | nurse 1, nurse 2 |
| jim | jones | nurse 7 |
| john | doe | nurse 4, nurse 5 |
| jim | jones | nurse 3 |
| jim | jones | nurse 6 |
+--------------------+--------------------+-------------------+
このデータを返す SQL をどのように記述すればよいでしょうか?
私のSQLは、各行のすべてのNURSESを返しています:
SELECT a.id, a.doctorid, a.firstname, a.lastname, GROUP_CONCAT(distinct c.firstname, ' ', c.lastname) as assignednurse
FROM dependents a
JOIN (
SELECT ass.id, ass.dependentid, ass.nurseid
FROM assignments ass
) b ON (a.doctorid = 22)
JOIN (
u.id, u.doctorid, u.firstname, u.lastname
FROM users u
GROUP BY u.id
) c ON (c.id = b.nurseid)
GROUP BY a.id