数据库复合3路连接查询

时间:2012-12-11 12:54:09

标签: php mysql database-design join

Tables

您好我有以下3个表,其中包含示例数据

患者:1,DUMMY PT,78936,1987-07-18

Custom_fields: 1 ,1,'血压' ,输入,'医疗记录'

patient_info:1, 1 ,80/90 blah blah,1


我想要的是,当我非常耐心的页面,是要获得所有行的'patient_info'其中pt_id = patients.patient_id然后获取custom_fields.title = cf_id,其中doctor_id = $ id 并显示所有。

从上面给出的数据示例应该如下所示:

患者:DuMMY pt个人资料页面: -

血压:80/90 blah blah

任何提示我应该如何将这些表连接在一起?

注意:我试过了:

SELECT patient_info.info,custom_fields.title FROM patient_info where patient_info.pt_id='8' and custom_fields.id=patient_info.cf_id and custom_fields.doctor_id = '10'
join patients on patient_info.pt_id=patients.patients_id
join custom_fields on patient_info.cf_id=custom_fields.id

其中10和8已经是赠品(PHP中的$ vars)但是我在<#39;

之后加入患者的错误

3 个答案:

答案 0 :(得分:1)

您可以使用以下代码

select * from patients P,Custom_fields CF,patient_info PI where PI.pt_id=p.patient_id
and PI.cf_id=CF.id and CF.doctor_id='$id';

答案 1 :(得分:1)

试试这个:

SELECT p.info,cf.title 
FROM patient_info p
INNER JOIN patients ps ON p.pt_id=ps.patients_id
INNER JOIN custom_fields cf ON p.cf_id=cf.id
WHERE p.pt_id='8' AND cf.doctor_id = '10'

答案 2 :(得分:1)

我觉得它应该是Left Join