mysql - SQL 从具有该值的不同 id 的列中选择值

标签 mysql select join group-by self-join

让我解释一下我的问题: 我有一个表,其中包含可能的交货日历周的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 中指定的值条款。

Demo here

关于mysql - SQL 从具有该值的不同 id 的列中选择值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44676750/

相关文章:

php - 创建新的 html 表,按年,根据年降序变化

JavaScript OnClick 选择标记在移动浏览器上不起作用

使用两列(不区分大小写)在数据帧上使用 Scala LEFT JOIN

mysql - 如何在 select 语句中生成条件数字列

mysql - 如何在联合体中订购 2 个表?

php - Mysql子日期查询: retrieve records from yesterday/last week/etc

html - 如何自定义选择标签?

SQL Server 2008 SELECT 相似词

mysql - Zend 框架 - 连接查询

sql - 在特定类别中获取带有附件的帖子?