在进行多次连接时需要一些帮助,这是我第一次尝试这个并希望它有效。
我有4个包含数据的表,需要从表中获取多个数据。
我有患者,手术,治疗和数据表。
治疗表的ID与其他表有关。
我想使用此表来获取患者接受治疗的日期以及他们将进行的手术。
所以基本上查询会输出:
日期 患者姓名 治疗名称 操作名称
我希望有人可以帮我创建一个查询,希望在不使用数据透视表的情况下获得这样的结果。
这是一个创建虚拟数据的SQLFiddle - 可以随意编辑: http://sqlfiddle.com/#!2/2f3c53
我已尝试使用部分查询,但我觉得这可能需要子查询或不同的连接。任何帮助表示赞赏!
答案 0 :(得分:0)
SELECT *
FROM date, operation, patients, treatment_type
WHERE treatment_type.PatientID = patients.ID
AND treatment_type.OperationID = operation.ID
AND treatment_type.DateID = date.ID
答案 1 :(得分:0)
这是一个基本的join
查询,您应该使用显式join
语法。如果您正在学习SQL,请正确学习:
SELECT d.date, p.firstname, p.lastname, tt.treatmentname, o.operationname
FROM treatment_type tt LEFT JOIN
date d
ON tt.DateID = d.ID LEFT JOIN
operation o
ON tt.OperationID = o.ID LEFT JOIN
patients p
ON tt.PatientID = p.ID;
对于您的示例数据,操作似乎不匹配。因此需要LEFT JOIN
。 Here是一个SQL小提琴。