优化以下 Postgres 查询

Optimize the following Postgress Query

你能帮我优化以下查询吗?我不喜欢我多次调用 ST_Covers 的事实。我搜索了整个 Whosebug,但我完全被难住了。任何帮助表示赞赏。谢谢。

如果我尝试 select 多列,我会得到:subquery must return only one column。这就是为什么我将它们分成 3 个不同的 select 语句

SELECT
   *,
   (SELECT id as city_id FROM cities WHERE ST_Covers(boundary, location))
   (SELECT name as city_name FROM cities WHERE ST_Covers(boundary, location)),
   (SELECT rent_fee FROM cities WHERE ST_Covers(boundary, location))
FROM cars

我的表格是这样的:

汽车

城市

期望的输出:

P.S。 carscities 表之间没有关系,我想保持这种关系。

SELECT
   cars.*, city_id, city_name, rent_fee 
FROM cars left join cities on ST_Covers(boundary, location)

如果有多个城市ST_Covers一辆车,这会return多排一辆车。 (在这种情况下,您当前的查询会抛出错误。)如果您对此不满意,那么您需要决定并描述在这种情况下应该发生什么。