提问者:小点点

SQL:where条件with all[duplicate]


用户表

id : Integer
name: String

user_review表

user_id: Integer
review: Integer

现在,user记录有许多user_review记录。

我需要获得所有具有5review4review的用户。

SELECT * FROM user JOIN user_review ON user.id = user_review.user_id
 WHERE user_review.review = 5 AND user_review.review = 4

Abobe代码正在恢复空结果。

我尝试了下面的代码,但是,返回错误的结果

SELECT * FROM user JOIN user_review ON user.id = user_review.user_id
 WHERE user_review.review in [5, 4] 

数据用户示例

id name
1  MM
2  EE

用户配置文件

user_id, review
1        4
1        5
2        4
2        5
3        4
4        5

想要的结果

id name
1  MM             // user1, having (review4) and (review5)
2  EE             // user2, having (review4) and (review5)

共1个答案

匿名用户

我想这就是你想要的。同时具有评审=4和评审=5的所有用户

select * from users 
where exists(select * from user_review where user_id = user.id and review = 4)
and exists(select * from user_review where user_id = user.id and review = 5)