我有一个结果列表,可能只在少数几个州中显示,但是我需要完整的州列表才能每次显示。

结果回来像这样:

AK 1
AL 5
CA 3
...
WV 4
WY 6
UN 10


但是应该返回为:

AK 1
AL 5
AR 0
AZ 0
CA 3
CO 0
CT 0
...
WV 4
WY 6
UN 10


是否只是对状态列表进行内部联接以确保始终存在零计数状态的问题?我没有状态表,但有“ AK”,“ AL”,“ AR”等状态列表。我不确定是否可以那样加入。该查询太大而无法发布,但是如果需要,我将看看是否可以提出一些建议。

最佳答案

您可以LEFT JOIN到状态列表,例如:

SELECT a.St
      ,COUNT(b.St) AS Ct
FROM State_List a
LEFT JOIN Other_Table b
  ON a.St = b.St
GROUP BY a.St


LEFT JOIN将从联接左侧的表中返回非联接记录,在这种情况下为状态列表。然后我们从表中COUNT()一个可能会也可能不会联接的字段。

关于mysql - MySQL-将结果与列表匹配,即使count为零,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28424324/

10-09 17:44
查看更多