2016-09-19 61 views
-4
$sql= " 
SELECT tbl_doctors. * , 
     tbl_specialisation. * , 
     tbl_doctor_address.addr_id, 
     tbl_address . * 
FROM `tbl_doctors` INNER JOIN 
    `tbl_specialisation` 
    ON (tbl_doctors.dr_spec_id = tbl_specialisation.spec_id) INNER JOIN 
    (tbl_doctor_address JOIN 
     tbl_address 
     ON tbl_doctor_address.addr_id = tbl_address.addr_id 
    ) 
    ON tbl_doctors.dr_id = tbl_doctor_address.dr_id 
WHERE tbl_doctors.dr_id = '$id'"; 
+2

将查询分解成什么? –

+2

如果您需要适当的帮助,请提出正确的问题。 – massko

+0

'where子句'中的未知列'dr_id'显示错误 –

回答

0

我想这部分需要改造:

(tbl_doctor_address JOIN 
    tbl_address 
    ON tbl_doctor_address.addr_id = tbl_address.addr_id 
) 
ON tbl_doctors.dr_id = tbl_doctor_address.dr_id 

进入这样的:

INNER JOIN `tbl_doctor_address` ON tbl_doctors.dr_id = tbl_doctor_address.dr_id 
INNER JOIN `tbl_address` ON tbl_doctor_address.addr_id = tbl_address.addr_id 

或者你可以使用一个LEFT JOIN如果不能有一个地址设置为医生:

LEFT JOIN `tbl_doctor_address` ON tbl_doctors.dr_id = tbl_doctor_address.dr_id 
LEFT JOIN `tbl_address` ON tbl_doctor_address.addr_id = tbl_address.addr_id 

告诉我他是否是他lps或不?