我正在创建一个关于医疗实践的测试数据库。这是我的急诊室图的图片,以供参考。ER diagram
所以基本上我的问题是如何正确地进行连接。我试图给出一个给定实践的患者列表(例如,practice id1),但我也想显示实践的名称和详细信息。我还想显示一个病人和全科医生的列表,这些病人和全科医生工作或曾经去过那个诊所(请记住,我只用10行测试数据填充了我的表)
到目前为止,我已经得到了
select patient.firstname, patient.surname
from patient
Join appointment on patient.patientid = appointment.patientid
where appointment.practiceid IN (1)
ORDER BY firstname;‘我如何还包括与此实践相关的实践详细信息和gp详细信息。让我感到困惑的是,如果select语句不是来自患者表,我如何添加这些语句。任何帮助都是最好的!
发布于 2016-04-22 03:20:42
我已经介绍了如何在查询中显示Practice_Name,如果您对提到的每个其他查询都使用相同的联接逻辑方法,您将会解决这个问题。我认为这是一种更好的学习方法,而不是在一个答案中解决上面的所有问题。
SELECT PR.Practice_Name, P.firstname, P.surname
FROM patient AS P
INNER JOIN appointment AS A ON P.patientid = A.patientid
INNER JOIN Practice AS PR ON A.practiceid = PR.practiceid
WHERE A.practiceid IN (1)
ORDER BY P.firstname;发布于 2016-04-22 03:20:52
您可以只添加更多的join子句:
SELECT patient.firstname, patient.surname, practice.name, practice.address
FROM patient
JOIN appointment ON patient.patientid = appointment.patientid
JOIN practice ON appointment.practiceid = practice.practiceid
WHERE appointment.practiceid IN (1)
ORDER BY firstname;发布于 2016-04-22 03:23:09
我喜欢给SQL语句加上别名。节省键入时间。
SELECT p.firstname, p.surname, pr.Details
FROM patient p
JOIN appointment a ON p.patientid = a.patientid
JOIN Practice pr ON pr.PracticeId = a.PracticeId
WHERE a.practiceid IN (1)
ORDER BY p.firstname;https://stackoverflow.com/questions/36778527
复制相似问题