MySQL Query需要返回行,而不是空结果

时间:2012-02-08 15:48:54

标签: mysql left-join

好吧,由于我的愚蠢,我投票删除了我之前的问题......

我有以下代码:

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。我需要什么然后,要执行的查询将从tresultsWHERE q60p = 1中返回第一部分中返回的5行中的每一行的数据 - 就像正常的“LEFT JOIN”一样。

有意义吗?

小时。

1 个答案:

答案 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