【问题标题】:many to many table JOIN多对多表 JOIN
【发布时间】:2013-02-13 21:50:18
【问题描述】:

我正在尝试在患者和护士之间建立多对多关系。

我需要将 PatientID 分配给 NurseID;所以病人和护士之间是有关系的。这可以通过函数 TABLE JOIN 实现吗?

到目前为止,我有三个表:

Patient 
(
PatientID (PK), 
Forename, 
surname, 
gender, 
date of birth, 
address, 
illness, 
prioirty
)

seen_by 
(
ID(PK),
PatientID(FK), 
NurseID(FK)
) 

Nurse 
(
NurseID(PK),  
Forename, 
surname
)

我在 seen_by 表中添加了一个外部约束,以添加患者和护士之间的关系。

Patient (PatientID (PK), Forename, surname, gender, date of birth, address, illness, prioirty)

seen_by (ID(PK) PatientID(FK to Patient.PatientID), NurseID(FK to Nurse.NurseID) )

Nurse (NurseID(PK), Forename, surname)

对我做错了什么有什么建议吗?提前谢谢你!

【问题讨论】:

    标签: mysql join relational-database


    【解决方案1】:

    试试这个:

    select p.*,s.*,n.* 
    from patient as p inner join seen_by as s 
    on p.PatientID=s.PatientID
    inner join Nurse as n 
    on n.NurseID=s.NurseID
    

    如果需要,可以在末尾添加 where

    select p.*,s.*,n.* 
    from patient as p inner join seen_by as s 
    on p.PatientID=s.PatientID
    inner join Nurse as n 
    on n.NurseID=s.NurseID
    where p.field='dumbtext'  -- you can add here the rest of the conditions
    

    【讨论】:

    • PatientID 没有进入 Nurse 表中的数据库。这是有原因的吗?
    • 什么意思?护士表没有 PatiendID
    • 有没有一种方法可以测试结果是否显示通过 PatientID、NurseID 将哪个患者分配给哪个护士?
    • 是的,进行相同的查询,但使用where p.patiendID=123,其中 123 是患者 ID,这将显示该患者的所有信息
    • PatientID 和 NurseID 是 auto_increment。我想显示来自 Patient 的 firstname、surename、PatientID 和来自 Nurse 的 firstname、surname、NurseID。这可能吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-08
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多