如何使用一个查询获取不同 ID 的列表,然后将此列表作为参数提供给 Postgres 中的另一个查询。
(SELECT DISTINCT id FROM inventory WHERE supplier_id = 37) AS idlist
(SELECT SUM(item_price) FROM transaction WHERE person_id IN (idlist)) AS output
您可以只使用您的 SELECT DISTINCT .... 查询作为第二个查询的 IN() 条件中的子查询。
即:
SELECT SUM(item_price)
FROM transaction
WHERE person_id
IN
(
SELECT DISTINCT id
FROM inventory
WHERE supplier_id = 37
)
而且,在这种情况下,您不需要在该子查询中特别需要 DISTINCT 关键字