我目前有:
SELECT * FROM submissions AS s
LEFT JOIN submission_category AS sc ON s.submission_category = sc.sub_cat_id
JOIN hospitals AS h ON h.hospital_id = sc.main_hospital_id
JOIN products AS p ON p.product_id = s.product_id
JOIN product_group AS pg ON pg.id = p.product_group_id
JOIN progress_steps AS ps ON sc.approval_step = ps.step_id
WHERE s.approval_status='2'
AND sc.user_id='$mask5'
问题是sc有3行,s有6行。我需要返回所有六行,但是目前它只返回3,其中一个来自对应于sc的s。
基于我现在正在尝试的建议:
SELECT * FROM submissions AS s
LEFT JOIN submission_category AS sc ON (s.submission_category = sc.sub_cat_id AND sc.user_id='$mask5' )
JOIN hospitals AS h ON h.hospital_id = sc.main_hospital_id
JOIN products AS p ON p.product_id = s.product_id
JOIN product_group AS pg ON pg.id = p.product_group_id
JOIN progress_steps AS ps ON sc.approval_step = ps.step_id
WHERE s.approval_status='2'
但仍然有三排,而不是六排?
答案 0 :(得分:0)
在LEFT JOIN
中设置WHERE
ed table [s]列会将“LEFT JOIN
变为INNER
(sc.user_id ='$ mask5'始终返回{{1}如果submission_category中没有相应的行,则为false或false。将NULL
移至加入条件:
sc.user_id=...