我应该注意,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 等 qnum
我想返回结果WHERE qnum = q60a
但是我有一个问题,当我将它添加到上面以进行以下操作时 - 它返回零结果(空结果集) ,这是不正确的:
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
我哪里出错了?
谢谢
H.
最佳答案
使测试成为 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
关于MySQL LEFT Join 问题 - 我做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9162854/