让我解释一下我的问题: 我有一个表,其中包含可能的交货日历周的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;
查询返回calendar_week_id
与所有不同相关的值 product_id
WHERE
中指定的值条款。
关于mysql - SQL 从具有该值的不同 id 的列中选择值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44676750/