-1

問題

情報を取得する必要がある 4 つのテーブルがあり、そのうちの 2 つは単純な結合です。

私のクエリは何も返しません。基本的に、フォーム名を取得して正しいフォームにするために、あるテーブルと次のテーブルから患者に関連付ける必要があるフォームがあります。

私が持っているもの

select person.first, person.last, treatmentPlan.created, treatmentPlan.updated, treatmentPlan.provider_id, intake.created, intake.updated, assesment.created, assesment.updated, discharge.created, discharge.updated

from form_patient_tie intake
LEFT OUTER JOIN form_patient_tie treatmentPlan ON intake.patient_id = treatmentPlan.patient_id
LEFT OUTER JOIN form_patient_tie assesment ON intake.patient_id = assesment.patient_id
LEFT OUTER JOIN form_patient_tie discharge ON intake.patient_id = discharge.patient_id

JOIN form as intakeForm ON intakeForm.form_id = intake.form_id
LEFT OUTER JOIN form treatmentPlanForm ON treatmentPlan.form_id = treatmentPlanForm.form_id
LEFT OUTER JOIN form assesmentForm on assesment.form_id = assesmentForm.form_id
LEFT OUTER JOIN form dischargeForm on discharge.form_id = dischargeForm.form_id
JOIN patient ON intake.patient_id = patient.patient_id
JOIN person on patient.person_id = person.person_id

WHERE (treatmentPlanForm.form_name LIKE "%Counseling Treatment Plan%" OR treatmentPlanForm.form_name IS NULL)
AND (intakeForm.form_name LIKE "%Counseling Intake%" OR intakeForm.form_name IS NULL)
AND (assesmentForm.form_name LIKE "%Counseling Assesment Review%" OR assesmentForm.form_name IS NULL)
AND (dischargeForm.form_name LIKE "%Counseling Discharge%" OR dischargeForm.form_name IS NULL)

Intake、Review、および Assessment が完了しているが退院していない患者がいることを知っていても、何も返されません。4 つすべてある場合は正常に機能しますが、1 つ欠けている場合は機能しません。

次のように見えるはずです

John Doe 2013-01-13 2013-01-15 2013-02-13 など。すべての人が入力しているわけではないため、null にすることは間違いなく許可されています。

4

1 に答える 1

0

「フォーム」テーブル(intakeFormエイリアス)への結合もLEFT JOINである必要があるように見えます。それ以外の場合、インテーク フォームに一致するものがない場合、クエリ全体で何も返されません。

于 2013-06-06T22:08:17.030 に答える