MySQL - 即使count为零,也会将结果与列表匹配

时间:2015-02-10 04:46:37

标签: mysql sql join inner-join union

我有一个结果列表,可能只显示少数几个州,但我需要每次都显示完整的状态列表。

结果如下:

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"我不确定是否有可能像这样加入。该查询太大而无法发布,但如果需要,我会查看是否可以提出一些内容。

1 个答案:

答案 0 :(得分:2)

您可以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()表中可能加入或不加入的字段。