我有4个表...父表是d_checkupinfo我想基于checkupinfo.move_type列值加入(检查)或(手术)或(medicaleq)...如果值= 1则加入使用检查表,如果值= 2,则加入手术,如果值= 3,则加入medicaleq。 那怎么做呢
SELECT
d_checkupinfo.*,
d_branch.*,
d_checkup.* ,
d_surgery.* ,
d_medicaleq.* ,
d_patient.*
FROM d_checkupinfo
LEFT JOIN d_branch WHERE d_checkupinfo.chi_branch_id = d_branch.branch_id
LEFT JOIN d_patient WHERE d_checkupinfo.chi_pi_num = d_patient.pi_id
LEFT JOIN d_checkup WHERE d_checkupinfo.chi_type_id = d_checkup.checkup_id AND move_type = 1
LEFT JOIN d_surgery WHERE d_checkupinfo.chi_type_id = d_surgery.surgery_id AND move_type = 2
LEFT JOIN d_medicaleq WHERE d_checkupinfo.chi_type_id = d_medicaleq.medicaleq_id AND move_type = 3
答案 0 :(得分:0)
SELECT
d_checkupinfo.*,
d_branch.*,
d_checkup.* ,
d_patient.*
FROM d_checkupinfo
LEFT JOIN d_branch ON d_checkupinfo.chi_branch_id = d_branch.branch_id
LEFT JOIN d_patient ON d_checkupinfo.chi_pi_num = d_patient.pi_id
LEFT JOIN d_checkup ON d_checkupinfo.chi_type_id = d_checkup.checkup_id WHERE move_type = 1
UNION ALL
SELECT
d_checkupinfo.*,
d_branch.*,
d_surgery.* ,
d_patient.*
FROM d_checkupinfo
LEFT JOIN d_branch ON d_checkupinfo.chi_branch_id = d_branch.branch_id
LEFT JOIN d_patient ON d_checkupinfo.chi_pi_num = d_patient.pi_id
LEFT JOIN d_surgery on d_checkupinfo.chi_type_id = d_surgery.surgery_id WHERE move_type = 2
UNION ALL
SELECT
d_checkupinfo.*,
d_branch.*,
d_medicaleq.* ,
d_patient.*
FROM d_checkupinfo
LEFT JOIN d_branch ON d_checkupinfo.chi_branch_id = d_branch.branch_id
LEFT JOIN d_patient ON d_checkupinfo.chi_pi_num = d_patient.pi_id
LEFT JOIN d_medicaleq on d_checkupinfo.chi_type_id = d_medicaleq.medicaleq_id WHERE move_type = 3