Как найти 2 значения в столбце B, которые имеют один и тот же столбец A - PullRequest
0 голосов
/ 19 сентября 2018

Например, допустим, у меня есть таблица с названием eats, с колонками animal и plant.

Как мне написать запрос для животного, которое ест plant1 и plant2?

Лучше всегоКажется, я могу вернуть все экземпляры plant1 и plant2, но я не могу понять, как сделать так, чтобы это было одно и то же животное для обоих.

SELECT animal
FROM eats e
WHERE e.plant = "plant1" AND e.plant = "plant2"

Так что, если это вернулось

horse   plant 1
pig     plant 1
horse   plant 2

Мне нужна лошадь только для запроса, который я пытаюсь сделать.

1 Ответ

0 голосов
/ 19 сентября 2018

Вы можете использовать GROUP BY и HAVING, чтобы сделать это

SELECT count(distinct e.plant) as cnt,animal FROM eats e
WHERE e.plant IN('plant1','plant2')
GROUP BY e.animal HAVING cnt = 2

. Для дальнейшего запроса вы можете сделать следующее:

   SELECT e1.* FROM eats e1
   JOIN 
  (
    SELECT count(distinct e.plant) as cnt,animal FROM eats e
    WHERE e.plant IN('plant1','plant2')
    GROUP BY e.animal HAVING cnt = 2
) e2 ON e2.animal=e1.animal
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...