-3

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
4

1 に答える 1