显示2个表中的记录和计数

时间:2012-12-15 08:22:10

标签: sql mysqli

我的要求是在此链接中Requirement。如果我们运行查询,我们将分别得到Chennai和Pune与Count 3,因为chennai和pune的regionid存在于表格中。但我需要将班加罗尔和德里显示为0。我该怎么做

2 个答案:

答案 0 :(得分:5)

您可以使用LEFT JOIN

SELECT A.region_name, COUNT(B.ID)
FROM TableA A 
LEFT JOIN TableB B
ON A.ID = B.ID
GROUP BY A.ID

See this SQLFiddle Demo

答案 1 :(得分:3)

您没有将Banglore和德里视为0,因为您在region_id加入了表格,而region_id (1)中没有Leads表格,因此您将获得Banglore和Delhi(See this)的vehicle_id = NULL。因此,当您撰写WHERE B.vehicle_id = 2时,您的结果将无法获得Banglore和Delhi。因此,删除WHERE条件会为您提供所需的结果(See this)。如果您想保持这种状态,可以使用Region.vehicle_id = 2代替Leads.vehicle_id = 2来实现。

请参阅this SQLFiddle

(1)Banglore和德里的region_id