繁体   English   中英

SQL查询根据多个条件返回结果集

[英]SQL Query to return result set based on multiple criteria

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

  • 与项目列表匹配的一组用户 ID
  • 每个项目都有一个品牌和与之相关的评级
  • 我正在尝试编写一个查询,该查询返回具有 2 个特定品牌商品的用户列表,两者的评分均为 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 匹配的项目的 user_ids 列表,它们的评分均为 5。所以结果将是:

user_id
-------
  1
  3

我尝试了一些事情,包括带有联合的 SELECT,但无法正确理解逻辑。 有任何想法吗?

这应该可以解决问题:

选择拥有品牌 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM