我正在寻找高级MySQL查询的帮助。我目前的查询,如下所示,工作正常。我想添加一个额外的字段,所以我不必创建一个单独的查询。新字段count(TableA.Field05
)应产生TableA
的总记录数。高级MySQL左连接IFNULL查询
表A具有10个记录
表B具有100个记录
SELECT count(TableB.Answer) AS unAnswered
FROM TableA
LEFT JOIN TableB
ON (TableA.Field01 = TableB.fkField01 AND TableA.Field02 = TableB.fkField02 AND TableB.Answer = '1')
WHERE TableB.fkField03 IS NULL AND TableA.Field04 = 10
GROUP BY TableA.Field01, TableA.Field02
结果:
unAnswered = 8
这是正确的
期望的结果是:
unAnswered = 8 count(TableA.Field05) = 10
-
这是一个数据和结果的例子。
SELECT count(TableB.Answer) AS unAnswered
FROM TableA LEFT JOIN TableB ON (TableA.Field01 = TableB.fkField01 AND TableA.Field02 = TableB.fkField02 AND TableB.Answer = '1')
WHERE TableB.fkField03 IS NULL AND TableA.Field04 = 10
GROUP BY TableA.Field01, TableA.Field02
TableA
Field01 = 1, Field02 = 1, Field03 = 10
Field01 = 1, Field02 = 2, Field03 = 21
Field01 = 1, Field02 = 3, Field03 = 22
Field01 = 1, Field02 = 4, Field03 = 34
TableB
Field01 = 1, Field02 = 1, Answer = 1
Field01 = 1, Field02 = 2, Answer = 1
Field01 = 1, Field02 = 3, Answer = 1
Field01 = 2, Field02 = 1, Answer = 1
Field01 = 2, Field02 = 2, Answer = 1
Field01 = 2, Field02 = 3, Answer = 1
Result
count(TableB.Answer) AS unAnswered = 1
Result trying to achive
count(TableB.Answer) AS unAnswered = 1
count(TableA.Field03) = 4
任何帮助将不胜感激。
如果添加COUNT(tableA.field05)'会发生什么?请显示一些示例数据和预期结果,并解释为什么此查询不起作用。 – AdamMc331
当我添加计数(TableA.Field05),我得到unAnswered = 8和计数(TableA.Field05)= 8 – Jecker
我会尝试添加一些示例数据到您的问题或建立一个[SQL小提琴](http:// www .sqlfiddle.com),所以我可以看到你想要做什么,并帮助你弄清楚。 – AdamMc331