我有两张桌子.
cities - id_city, city_name
properties - id_property, id_city, property_name
Run Code Online (Sandbox Code Playgroud)
我想显示cities.city_name
它旁边[properties.count(id_city)]
如果没有找到记录,如何使查询仍返回零NULL
,以便得到如下结果:
London [123]
New York [0]
Berlin [11]
Run Code Online (Sandbox Code Playgroud)
"纽约"是[0],NULL
不是1而不是1?
Chs*_*y76 21
使用外部联接:
select cities.city_name, count(properties.id_city)
from cities left join properties on cities.id_city = properties.id_city
group by 1
Run Code Online (Sandbox Code Playgroud)
Sha*_*awn 21
我认为以下内容将为您完成,但我还没有测试过.诀窍是在一个表中获取属性计数,然后将该表连接到cities表,使用IFNULL函数将NULL转换为0 .
SELECT city_name, IFNULL(property_count, 0)
FROM cities
LEFT JOIN
(SELECT id_city, count(*) as property_count
FROM properties
GROUP BY id_city) city_properties
USING (id_city);
Run Code Online (Sandbox Code Playgroud)