MySQL запрос эквивалентен «И», тогда как «IN» означает «ИЛИ»? - PullRequest
5 голосов
/ 05 июня 2011

Я пытаюсь найти запрос, который выбирает каждую строку ассоциативной таблицы, где во втором столбце указаны разные значения, которые должны совпадать с первым столбцом.

Пример: у меня есть столбцы X и Y. Я хочу получить значения X, где X определяется с каждым указанным Y.

x    y
======
a    1
a    2
b    1
a    3
c    2
c    3

SELECT DISTINCT x FROM table WHERE y AND (2, 3)

Этот запрос, конечно, недействителен. Я ожидал бы получить a и c как-то.

Поскольку я также пытаюсь лучше изучить запросы MySQL, я был бы признателен, если бы вы могли дать объяснение логике вашего ответа, если вы можете предоставить один. Спасибо! :)

1 Ответ

11 голосов
/ 05 июня 2011

Надеюсь, это то, что вы ищете.Если вы подтвердите это, я объясню вам запрос.

select x
from table
where y in (2,3)
group by x
having count(distinct(y)) = 2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...