[英]SQL Query to return result set based on multiple criteria
我希望返回一个 SQL 查询,该查询返回一组匹配多个条件的结果,但只返回来自这些条件的不同结果。 这是我所拥有的:
例子:
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.