我应该注意id
在tdemog_pfp表中并不是唯一的 - 那里有一个自动递增的唯一字段 - 这可能是个问题吗?
好的,我有以下SQL查询:
SELECT id, name, total_staff AS StaffCount, COUNT( q60a ) AS TotalResp, (COUNT( q60a ) / total_staff * 100) AS Perc
FROM tdemog_pfp
LEFT JOIN tresults_pfp ON tdemog_pfp.id = tresults_pfp.q60a
GROUP BY name
ORDER BY name
现在,demog表有多行,其中条目可以有q59,q60a,q60b等等,用于colomn qnum
我想恢复结果WHERE qnum = q60a
,但是我有一个问题,当我将它添加到上面以进行以下操作时 - 它会返回零结果(空结果集),这是不正确的:< / p>
SELECT id, name, total_staff AS StaffCount, COUNT( q60a ) AS TotalResp, (COUNT( q60a ) / total_staff * 100) AS Perc
FROM tdemog_pfp
LEFT JOIN tresults_pfp ON tdemog_pfp.id = tresults_pfp.q60a
WHERE qnum = q60a
GROUP BY name
ORDER BY name
我哪里错了?
谢谢,
小时。
答案 0 :(得分:2)
使您的测试成为JOIN条件的一部分,而不是在WHERE子句中进行测试。
SELECT id, name, total_staff AS StaffCount, COUNT( q60a ) AS TotalResp, (COUNT( q60a ) / total_staff * 100) AS Perc
FROM tdemog_pfp
LEFT JOIN tresults_pfp ON tdemog_pfp.id = tresults_pfp.q60a
AND qnum = q60a
GROUP BY name
ORDER BY name
答案 1 :(得分:1)
执行此操作:WHERE qnum = q60a
正在将您的查询转换为inner join
;因此,在这种情况下没有结果。