SQL select 列中不同 ID 的值均具有此值

SQL select values from a column by different ids that all have this value

让我解释一下我的问题: 我有一个 table,其中包含 product_id 和相应的 calender_week_id,用于可能的交付日历周。每个产品可以在数周内交付:

| product_id | calender_week_id |    
| 1          | 1                |    
| 1          | 2                |    
| 2          | 1                |    
| 3          | 1                |    
| 3          | 2                |

...

我现在想要的是匹配一组 product_id(一个订单)的 calender_week_id。假设我有 product_id IN (1,2,3)。现在我需要一个 SQL 语句来给出所有匹配所有给定 product_id 的 calender_week_id - 所以在这种情况下 = 1 因为 calender_week_id = 1 是product_id = 1、product_id = 2 和 product_id = 3 的对应值。

希望您能理解我的问题并能帮助我!

您需要如下查询:

SELECT calendar_week_id
FROM mytable
WHERE product_id IN (1,2,3)
GROUP BY calendar_week_id
HAVING COUNT(DISTINCT product_id) = 3;

查询 returns calendar_week_id 值与 所有不同的 product_id 值相关 WHERE 子句中指定。

Demo here