使用多个连接进行mysql查询

时间:2014-12-07 03:15:00

标签: mysql

在进行多次连接时需要一些帮助,这是我第一次尝试这个并希望它有效。

我有4个包含数据的表,需要从表中获取多个数据。

我有患者,手术,治疗和数据表。

治疗表的ID与其他表有关。

我想使用此表来获取患者接受治疗的日期以及他们将进行的手术。

所以基本上查询会输出:

  

日期   患者姓名   治疗名称   操作名称

我希望有人可以帮我创建一个查询,希望在不使用数据透视表的情况下获得这样的结果。

这是一个创建虚拟数据的SQLFiddle - 可以随意编辑: http://sqlfiddle.com/#!2/2f3c53

我已尝试使用部分查询,但我觉得这可能需要子查询或不同的连接。任何帮助表示赞赏!

2 个答案:

答案 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 JOINHere是一个SQL小提琴。