以下是sqlFiddle
我想过滤选择实体的用户,所以如果我想过滤实体的用户,说实体有ids“1”和“3”,我希望得到拥有这两个实体的用户。 所选实体的数量不等。
我正在使用的查询是
SELECT user_id from user_entities where entity_id IN(1,3)
但是由于显而易见的原因,它正在把我的结果作为
+----+-----------+---------+--------+
| ID | ENTITY_ID | USER_ID | STATUS |
+----+-----------+---------+--------+
| 1 | 1 | 3 | 1 |
| 2 | 3 | 3 | 1 |
| 7 | 1 | 2 | 1 |
| 29 | 3 | 1 | 1 |
+----+-----------+---------+--------+
所以我将对它应用distinct,它将为我提供ID为1,2,3的用户ID,但我只想要用户3,因为这是唯一拥有这两个实体的用户。
可以修改哪些内容以获得准确的结果
答案 0 :(得分:0)
您可以将表连接到自身,并将两个ID指定为连接条件的一部分:
SELECT e1.user_id
FROM user_entities e1
INNER JOIN user_entities e2
ON e1.user_id = e2.user_id AND
e1.entity_id = 1 AND
e2.entity_id = 3;