Есть таблица
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 или более разделам?
С помощью DISTINCT можно выбрать уникальные значения:
SELECT DISTINCT(`item_id`) FROM `table` WHERE `division_id` IN(1,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)
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Метаклассы - это тип отношения между классамиКак его можно охарактеризовать и реализовать в языке Java?
Возникла проблема с SSL-соединением на последних версиях Android (API>23)На предыдущих версиях проблема не наблюдается
Переломной стоит задача, средствами Java научиться стримить на сервис Twitch