我花了好几个小时寻找答案,但我想我可能不会朝着正确的方向前进。这是我的问题:
我们说我有一个这样简单的表:
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,这不是我想要的。 我尝试过所有,但我不认为这是我想要的。 非常感谢你的帮助。我很确定答案是在其他人的帖子中,但我还没能找到它。
版
答案 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 */