Mysql 返回基于多个条件的结果集的SQL查询

Mysql 返回基于多个条件的结果集的SQL查询,mysql,sql,Mysql,Sql,我希望返回一个SQL查询,该查询返回一组匹配多个条件的结果,但只返回来自这些条件的不同结果。以下是我所拥有的: 与项目列表匹配的一组用户ID 每个项目都有一个品牌和一个与之相关的评级 我试图编写一个查询,返回一个用户列表,其中有两个特定品牌的商品,两个品牌的评分都是5 例如: user_id brands rating ------- ------ ------ 1 A 5 1 B

我希望返回一个SQL查询,该查询返回一组匹配多个条件的结果,但只返回来自这些条件的不同结果。以下是我所拥有的:

  • 与项目列表匹配的一组用户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,它工作得很好!谢谢你的帮助。