优化以下 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
我的表格是这样的:
汽车
- id
- 位置
- 葡萄酒
- 制造商
城市
- id
- 名字
- 边界
- rent_fee
期望的输出:
- id
- 位置
- 葡萄酒
- 制造商
- city_id
- city_name
- rent_fee
P.S。 cars
和 cities
表之间没有关系,我想保持这种关系。
SELECT
cars.*, city_id, city_name, rent_fee
FROM cars left join cities on ST_Covers(boundary, location)
如果有多个城市ST_Covers一辆车,这会return多排一辆车。 (在这种情况下,您当前的查询会抛出错误。)如果您对此不满意,那么您需要决定并描述在这种情况下应该发生什么。
你能帮我优化以下查询吗?我不喜欢我多次调用 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
我的表格是这样的:
汽车
- id
- 位置
- 葡萄酒
- 制造商
城市
- id
- 名字
- 边界
- rent_fee
期望的输出:
- id
- 位置
- 葡萄酒
- 制造商
- city_id
- city_name
- rent_fee
P.S。 cars
和 cities
表之间没有关系,我想保持这种关系。
SELECT
cars.*, city_id, city_name, rent_fee
FROM cars left join cities on ST_Covers(boundary, location)
如果有多个城市ST_Covers一辆车,这会return多排一辆车。 (在这种情况下,您当前的查询会抛出错误。)如果您对此不满意,那么您需要决定并描述在这种情况下应该发生什么。