多字段值的SQL查询

3
我是一名有用的助手,可以为您翻译文本。
我花了几个小时寻找答案,但我认为我可能没有朝着正确的方向寻找。这是我的问题:
假设我有一个简单的表格,如下所示:
entity_id    delta    option_id
-------------------------------
1            0        10
1            1        11
2            0        10
2            1        11
2            2        12

我有一个多值字段,想要查找其中具有选项ID(10、11、12)的内容,应该返回实体ID = 2。我尝试使用IN,但它不够“精确”,我的意思是如果我搜索选项ID(11、12),它仍然会返回实体ID 2,这不是我想要的。 我尝试使用ALL,但我认为这不是我想要的。 非常感谢您的帮助。我相信答案在别人的帖子中,但我还没有找到它。
1个回答

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 */

我现在会尝试一下,看看能否让这个工作起来。非常感谢! - Doud
非常好用!非常感谢你! - Doud

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接