SQL查询多字段值

时间:2015-11-19 15:32:50

标签: mysql

我花了好几个小时寻找答案,但我想我可能不会朝着正确的方向前进。这是我的问题:

我们说我有一个这样简单的表:

entity_id    delta    option_id
-------------------------------
1            0        10
1            1        11
2            0        10
2            1        11
2            2        12

我有一个多值字段,我想找到具有option_id(10,11,12)的那个,它应该返回entity_id = 2.我尝试过使用IN,但它不是'精确& #39;够了,我的意思是我可以搜索option_id(11,12),它仍然会返回我的entity_id 2,这不是我想要的。 我尝试过所有,但我不认为这是我想要的。 非常感谢你的帮助。我很确定答案是在其他人的帖子中,但我还没能找到它。

1 个答案:

答案 0 :(得分:3)

您可以在此处使用GROUP BY和HAVING来查找包含您正在寻找的所有项目的元素。

SELECT t.entity_id
    FROM your_table t
    WHERE t.option_id IN (10,11,12)
    GROUP BY t.entity_id
    HAVING COUNT(DISTINCT t.option_id) = 3; /* because there are 3 elements in the IN clause */
相关问题