如何关联两张表统计指定城市的已发布活跃独栋住宅数量?
解决方案
要统计指定城市中符合条件的独栋住宅总数,核心是找到#_property和#_property_types的关联字段(通常是房产ID,比如property_id,假设两张表都包含这个字段),通过该字段将两张表连接后,就能同时筛选所有目标条件。
最终SQL语句
SELECT COUNT(*) AS single_family_active_count FROM #_property p INNER JOIN #_property_types pt ON p.property_id = pt.property_id WHERE p.city_id = '4' AND p.status_id = 7 AND p.published = 1 AND pt.property_type_id = '13';
逻辑拆解
- 表关联:用
INNER JOIN通过property_id连接两张表,只保留同时存在于两张表中的房产记录,确保统计的是有明确类型的有效房产。 - 条件筛选:
- 在
#_property中锁定目标城市、活跃状态和已发布状态; - 在
#_property_types中筛选独栋住宅类型。
- 在
- 统计方式:
COUNT(*)直接统计符合所有条件的记录数,比你之前用的SUM(CASE...)更简洁高效。
注意事项
如果两张表的关联字段不是property_id,替换成实际的关联字段即可。如果存在一个房产对应多个类型的情况,需要用COUNT(DISTINCT p.property_id)去重,避免重复统计同一套房产。
内容的提问来源于stack exchange,提问作者David Ellison
相关产品推荐
相关产品推荐

