我有以下数据库:高级查询没有得到任何结果
数据库说明
如果未显示从表中病人所谓的patient
包含patient_id和patient_name_en
可以在每次访问诊所(表访问)时出现多个症状,以便每次访问时可以看到多个医生/护士。
每位医生都可以为患者指定多种诊断,从这里您可以看到我们有一个连接到consultation
的表diagnosis
。
完成咨询后,医生应该指定患者应该服用的药物以及服用多少药。这里是药房的一部分,它包含3个表格:
medication
:一般药物清单;med_pharmacy
:如果我们有一定数量的特定药物,它会出现在这张表中;consultation_med
:它与consultation
表连接,在这里我们可以指定med_pharmacy_id
以及给予患者多少药片。
预期结果
我正在准备一个html页面生成使用AJAX的PHP脚本的报告:
请大家注意,在每次访问,患者可以看到多位医生/护士,这就是为什么咨询表每次就诊可能包含多行,因此可能会规定多种药物。因此,在HTML页面,我们将不得不从红色开始多行:
我做了一个查询什么是以下几点:
select t1.visit_id,
t1.consultation_type,
t3.patient_name,
t3.patient_id,
t3.nationality,
t1.date_of_visit,
t2.complication_name,
t2.consultation_result,
t5.doctor_name,
t6.nurse_name,
t8.med_name,
t4.given_quantity,
t4.medication_collector
FROM visit t1, consultation t2, patient t3
LEFT JOIN consultation_med t4 USING (consultation_id, med_pharmacy_id, clinic_id)
LEFT JOIN doctor_list t5 USING (doctor_list_id, doctor_name, clinic_id)
LEFT JOIN nurse_list t6 USING (nurse_list_id, nurse_name, clinic_id)
LEFT JOIN med_pharmacy t7 USING (med_pharmacy_id, med_id, clinic_ic)
LEFT JOIN medication t8 USING(med_id, med_name, clinic_id)
WHERE t1.visit_id = t2.visit_id
AND t2.consultation_id = t4.consultation_id
AND t1.patient_id = t3.patient_id
AND t1.clinic_id = t3.clinic_id
AND t5.doctor_list_id = t2.doctor_list_id
AND t6.nurse_list_id = t2.nurse_list_id
AND t7.med_id = t8.med_id
AND t1.clinic_id='361' AND t1.patient_id='361-0100' AND t1.visit_id='124'
我不停收到此错误:
Error Code: 1054. Unknown column 'consultation_id' in 'from clause'
然后我尝试下面的查询,但仍然没有得到所要的结果:
select t1.visit_id,
t1.consultation_type,
t3.patient_name_en,
t3.patient_id,
t3.nationality,
t1.date_of_visit,
t2.complication_name,
t2.consultation_result,
t5.doctor_name,
t6.nurse_name,
t8.med_name,
t4.given_quantity,
t4.medication_collector
FROM visit t1
LEFT JOIN consultation t2 ON t2.consultation_id = t4.consultation_id, patient t3
LEFT JOIN consultation_med t4
LEFT JOIN doctor_list t5 ON t5.doctor_list_id = t2.doctor_list_id
LEFT JOIN nurse_list t6 ON t6.nurse_list_id = t2.nurse_list_id
LEFT JOIN medication t8 ON t1.clinic_id = t8.clinic_id
LEFT JOIN med_pharmacy t7 ON t7.med_id = t8.med_id
WHERE t1.visit_id = t2.visit_id
AND t1.patient_id = t3.patient_id
AND t1.clinic_id = t3.clinic_id
AND t1.clinic_id='361' AND t1.patient_id='361-0100' AND t1.visit_id='124'
这些类型的多个连接的大型查询对我来说是新的。
'LEFT JOIN咨询t2 ON t2.consultation_id = t4。consult_id,patient t3'为什么这条线上的',患者t3'如果您需要另一个JOIN写另一个JOIN – RiggsFolly
请将样本数据,预期结果和实际结果发布,理想情况下为SQLFiddle。还要考虑比“t1/t2”更好的别名 - 它使查询更难理解。 –
好吧,请帮助我找到解决方案。预期的结果恰好在html页表上。 – droidnation