gpt4 book ai didi

PostgreSQL WHERE IN 子句变体

转载 作者:行者123 更新时间:2023-11-29 14:18:35 26 4
gpt4 key购买 nike

虚构的例子

SELECT products_campaign.id
FROM products_campaign
INNER JOIN products_store ON products_campaign.id_campaign = products_store.id_campaign
WHERE products_store.id_store in (100, 200, 300)
GROUP BY id

这为我带来了商店中的每个产品 ID 100、200 300。
我想构建一个查询,为我提供商店 100、200 AND 300 中的每个产品 ID,也就是说,该产品必须存在于所有三个商店中(相交)。

最佳答案

您可以将 array_agg() 与运算符@> 一起使用:

SELECT products_campaign.id
FROM products_campaign
INNER JOIN (
SELECT id_campaign
FROM products_store
GROUP BY id_campaign
HAVING (array_agg(id_store) @> array[100, 200, 300])
) products_store
ON products_campaign.id_campaign = products_store.id_campaign
GROUP BY id

了解 array operators .

关于PostgreSQL WHERE IN 子句变体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38440042/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com