【问题标题】:Filtering rows in a many to many mapping table [duplicate]过滤多对多映射表中的行[重复]
【发布时间】:2015-07-06 00:28:04
【问题描述】:

如果我有一个如下所示的映射表:

| entity_id |变量 | | --------- | -------- | | 1 | 2010 | | 1 |中号 | | 1 |马 | | 2 | 2010 | | 2 | F | | 2 |马 | | 3 | 2011 | | 3 |中号 | | 3 |马 | | 4 | 2011 | | 4 | F | | 4 |马 | | 5 | 2010 | | 5 |中号 | | 5 |纽约 | | 6 | 2010 | | 6 | F | | 6 |纽约 | | 7 | 2011 | | 7 |中号 | | 7 |纽约 | | 8 | 2011 | | 8 | F | | 8 |纽约 |

在一组变量中找出与 all 匹配的 entity_id 的最简单查询是什么?

匹配集合中的 any 变量很简单,例如:

SELECT entity_id FROM table WHERE variable IN ('2010', 'MA')

但是,如果我想找到同时映射到“2010”“MA”的所有 entity_id,该怎么办?

理想情况下,这将是一个通用 SQL 查询,但如果需要使用特殊特性/功能,则假设为 MySQL。

【问题讨论】:

    标签: mysql sql subquery


    【解决方案1】:
    SELECT entity_id 
    FROM table 
    WHERE variable IN ('2010', 'MA') 
    GROUP BY entity_id 
    HAVING count(*) = 2
    

    【讨论】:

    • COUNT(DISTINCT 变量)
    猜你喜欢
    • 2014-10-29
    • 2012-07-08
    • 1970-01-01
    • 1970-01-01
    • 2021-09-15
    • 1970-01-01
    • 2020-11-22
    • 2020-11-23
    • 1970-01-01
    相关资源
    最近更新 更多