假设我们有一个带有logs表和types表的数据库。我想做一个查询,找出userx是否有特定类型日志的条目。假设userx已经登录 type_1
以及 type_2
,但不是 type_3
. 我想写一个简单的查询,看看这是真是假。
一开始我尝试了以下方法:
SELECT * FROM logs AS l
INNER JOIN types AS t
ON t.id = l.type_id
WHERE t.name = "type_1"
AND t.name = "type_2"
AND t.name != "type_3";
但我很快意识到,这样做是不可能的,因为 t.name
不能有多个值。我已经尝试了很多不同的方法,但似乎找不到一个适合我。我相信解决办法相当简单,只是目前看不出来。
希望有人能给我指出正确的方向。
我在这个小提琴中制作了一个简单的测试数据库,用于测试和示例:https://www.db-fiddle.com/f/na6ikgccjwknxksxanvslt/0
3条答案
按热度按时间qeeaahzv1#
一个带有条件聚合的选项。
qxgroojn2#
我不建议使用
count(distinct)
为此目的。它可能很贵。我只想做:lc8prwob3#
您可以像vamsi那样做,但是如果您喜欢更易于理解的sql,那么您可以这样做: