Общие значения из двух запросов

243
12 марта 2017, 05:36

Есть таблица

item_id, division_id
1        1
1        2
2        1
3        1
4        1

Как выбрать item_id, которые идут и к division_id= 1 и к division_id= 2? Т.Е. должны быть уникальные item_id, которые относятся только к 2 или более разделам?

Answer 1

С помощью DISTINCT можно выбрать уникальные значения:

SELECT DISTINCT(`item_id`) FROM `table` WHERE `division_id` IN(1,2)
Answer 2

Группируем по item_id, считаем во сколько division_id входит каждый, берём только те, что входят в 2 и более.

SELECT item_id
FROM `table`
GROUP BY item_id
HAVING COUNT(division_id) > 1

Для выборки по конкретным division_id можно добавить

WHERE division_id IN (1, 2)

Метод грубой силы:

SELECT item_id FROM `table` t
WHERE EXISTS(SELECT * FROM `table` a where a.item_id=t.item_id AND a.division_id IN (1,2,3,4,5))
  AND EXISTS(SELECT * FROM `table` a where a.item_id=t.item_id AND a.division_id = 6)
READ ALSO
Отношение “Метаклассы” между классами(Java)

Отношение “Метаклассы” между классами(Java)

Метаклассы - это тип отношения между классамиКак его можно охарактеризовать и реализовать в языке Java?

251
Android Nougat.Проблема с SSL-соединением

Android Nougat.Проблема с SSL-соединением

Возникла проблема с SSL-соединением на последних версиях Android (API>23)На предыдущих версиях проблема не наблюдается

243
Нужна помощь с TabLayout

Нужна помощь с TabLayout

Сделал TabLayout в стиле Material Design:

290
Трансляция видео на twitch средствами Java

Трансляция видео на twitch средствами Java

Переломной стоит задача, средствами Java научиться стримить на сервис Twitch

324