bedroom_count不是单行
SELECT CASE
WHEN p.property_type = 'APARTMENT_COMMUNITY' THEN
(SELECT fp.bedroom_count
FROM floor_plans fp
WHERE fp.removed = FALSE
AND fp.property_id = p.id)
ELSE
(SELECT pu.bedroom_count
FROM property_units pu
WHERE pu.removed = FALSE
AND pu.property_id = p.id)
END
FROM properties p
WHERE p.id = 550;
我有这个,bedroom_count不是一个单行,所以它给出这个错误ERROR:用作表达式的子查询返回多行
- 我需要得到这个结果,在这种情况下,是否有其他解决方案?**
3条答案
按热度按时间v8wbuo2f1#
错误来自于第一个或第二个子查询返回给定property_id(550)的多行。
我想要所有的结果
我猜您需要的是两个表的左连接。
qojgxg4l2#
听起来你真的很想连接这些表。但是,当你想从一个表或另一个表计算卧室数时,你必须外部连接这些表。
或者使用
UNION ALL
:(If property_type可以为空,因此需要对这些查询进行一些调整来处理此问题。)
yws3nbqq3#
这是我的问题的答案,以防有人需要