@esvlad
Веб-разработчик

Как сделать такую выборку?

Допустим есть данные вида
id  | f_id
---------
11 | 27
11 | 47
12 | 27
12 | 47
13 | 28
13 | 47

Нужно выбрать id у которых f_id одновременно равно 27 и 47, в результате получить id = [11,12].
Если выбирать с помощью IN
.. f_id IN(27, 47)
то в результате он достанет id = [11, 12, 13].

Собственно вопрос как сделать чтобы он вытаскивал элементы не у которых присутствует одно из значений, а у которых данные значения совпадают (27, 47)?
  • Вопрос задан
  • 76 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Если пары (`id`, `f_id`) уникальные, то можно так:
SELECT `id`
  FROM `table`
  WHERE `f_id` IN (27, 47)
  GROUP BY `id`
  HAVING COUNT(`id`) = 2
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
sHinE
@sHinE
веб-разработчик, php/js/mysql и сопутствующее
Может как-то так через джойн таблицы саму на себя по f_id?
SELECT t1.id FROM table1 t1 INNER JOIN table1 t2 ON t1.f_id=t2.f_id AND t1.id<>t2.id
Ответ написан
Комментировать
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы