我正在尋找高級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