I'm trying to find a query that selects every row of an associative table where the second column indicates different values that must all be matched with the first column's.
Example: I have column X and Y. I want to get the values of X where X is defined with every Y specified.
x y
======
a 1
a 2
b 1
a 3
c 2
c 3
SELECT DISTINCT x FROM table WHERE y AND (2, 3)
This query of course isn't valid. I would expect to get a and c somehow.
As I'm also trying to learn MySQL queries better, I would appreciate if you could give an explanation of the logic behind your answer if you can provide one. Thanks! :)
解决方案
I hope this is what you're looking for. If you confirm it,I'll explain you the query.
select x
from table
where y in (2,3)
group by x
having count(distinct(y)) = 2