让我解释一下我的问题: 我有一个表格,其中包含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。
我希望你能理解我的问题并帮助我!
答案 0 :(得分:1)
您需要以下查询:
SELECT calendar_week_id
FROM mytable
WHERE product_id IN (1,2,3)
GROUP BY calendar_week_id
HAVING COUNT(DISTINCT product_id) = 3;
查询返回与{em> calendar_week_id
子句中指定的所有不同 product_id
值相关的WHERE
值。