好吧,由于我的愚蠢,我投票删除了我之前的问题......
我有以下代码:
SELECT qnum, id, name, total_staff AS StaffCount, COUNT( q61g ) AS TotalResp,
(COUNT( q61g ) / total_staff * 100) AS Perc
FROM tdemog_pfp
LEFT JOIN tresults_pfp ON tdemog_pfp.id = tresults_pfp.q61g
WHERE qnum = 'q61g' AND q60p = '1'
GROUP BY name
ORDER BY name
现在,此查询的第一部分返回tdemog
表中的行,例如,它将从1到5带回5行数据,每行有id
。我需要什么然后,要执行的查询将从tresults
表WHERE q60p = 1
中返回第一部分中返回的5行中的每一行的数据 - 就像正常的“LEFT JOIN”一样。
有意义吗?
小时。
答案 0 :(得分:1)
尝试将WHERE
条款的一部分移至JOIN
条件:
SELECT ...
FROM tdemog_pfp
LEFT JOIN tresults_pfp ON tdemog_pfp.id = tresults_pfp.q61g AND q60p = '1'
WHERE qnum = 'q61g'
GROUP BY name
ORDER BY name
如果您的WHERE
子句中的第二个表中有一个字段,它将限制整个记录...但如果您将其置于JOIN
条件,则表示第一个表中的记录即使第二张表中的记录不符合附加标准,仍然应该返还......
我不确定哪个列属于哪个表...但是将第二个表中的任何列移动到JOIN
。