Mysql 返回基于多个条件的结果集的SQL查询
我希望返回一个SQL查询,该查询返回一组匹配多个条件的结果,但只返回来自这些条件的不同结果。以下是我所拥有的:Mysql 返回基于多个条件的结果集的SQL查询,mysql,sql,Mysql,Sql,我希望返回一个SQL查询,该查询返回一组匹配多个条件的结果,但只返回来自这些条件的不同结果。以下是我所拥有的: 与项目列表匹配的一组用户ID 每个项目都有一个品牌和一个与之相关的评级 我试图编写一个查询,返回一个用户列表,其中有两个特定品牌的商品,两个品牌的评分都是5 例如: user_id brands rating ------- ------ ------ 1 A 5 1 B
- 与项目列表匹配的一组用户ID
- 每个项目都有一个品牌和一个与之相关的评级
- 我试图编写一个查询,返回一个用户列表,其中有两个特定品牌的商品,两个品牌的评分都是5
user_id brands rating
------- ------ ------
1 A 5
1 B 4
1 C 5
2 A 3
2 C 1
3 A 5
3 B 4
3 C 5
4 D 3
4 B 4
4 C 5
我想返回与品牌A和品牌C匹配的项目的用户ID列表,它们的评分都是5。因此,结果将是:
user_id
-------
1
3
我尝试了一些方法,包括选择一个联合体,但没有正确的逻辑。有什么想法吗?这应该可以做到: 选择具有品牌A和品牌C且两个品牌的评分均为5的唯一用户。您可以通过将表本身连接起来,提供两个不同的别名来实现这一点。这样,您可以让t1为品牌A返回用户,t2为品牌C返回相同的用户
select distinct
t1.user_id
from YourTable t1
inner join YourTable t2 on t2.user_id = t1.user_id
where
t1.brands = 'A' and
t2.brands = 'C' and
t1.rating = 5 and
t2.rating = 5
谢谢GolezTrol,它工作得很好!谢谢你的帮助。