I have a Chat_User
join table, and want to retrieve the ChatId
of a
between specified UserId
of x
and y
.
Chat_User
table:
x
Id ChatId UserId
1 a x <===
2 b z
3 a y <===
4 c x
I tried:
SELECT ChatId
WHERE UserId IN ('x','y')
GROUP BY ChatId;
But it returns ChatId
of a
and c
, but I only want a
, as it has BOTH of my specified UserId
(x
and y
).
Any way to achieve this?
Thanks
Advertisement
Answer
Aggregation offers one approach:
SELECT ChatId
FROM yourTable
WHERE UserId IN ('x', 'y')
GROUP BY ChatId
HAVING MIN(UserId) <> MAX(UserId);