Выбор только перечисленных элементов в WHERE IN

178
03 января 2019, 05:20

Есть sql запрос:

SELECT * FROM tb_products p 
LEFT JOIN tb_cities c ON p.city_id=c.id 
WHERE c.city_id IN (1, 3, 6)

Но мне нужно чтобы из выбранных 3 идентификаторов (1, 3, 6), выбрались все перечисленные, а не только любой из них.

То есть в таблице tb_cities есть несколько записей с одним и тем же продуктом но с разными городами. Мне нужно чтобы продукы были в городах с id: 1, 3, 6; то есть IN (1, 3, 6), а не продукты которые есть в одной из этих городов.

Если я не ясно объяснил то прошу напишите

Answer 1

Так как структура таблицы не предоставлена, запрос будет примерно такой:

SELECT p.product_id
FROM tb_products p 
    JOIN tb_cities c ON p.city_id=c.id 
WHERE c.id IN (1, 3, 6)
GROUP BY p.product_id
HAVING count(distinct c.id) = 3

Что получается - присоединяем таблицу с городами и продуктами, указываем, чтобы продукты были только в 3-х городах и смотрим, сколько уникальных городов есть для каждого продукта. Если три города - значит продукт есть и в 1, и в 3, и в 6.

READ ALSO
MySQL - Рекламные кампании и блеклист

MySQL - Рекламные кампании и блеклист

Есть 2 таблицы "campaigns" и "bl_sites"

169
Как выровнять строки при flex flex-wrap wrap?

Как выровнять строки при flex flex-wrap wrap?

Если высота элемента становится больше, то он получается выше чем остальные элементы на той же строкеИ важно чтобы эти элементы выводились...

139
Стили и разметка

Стили и разметка

Нашёл на просторах интересную библиотеку стилей к framework'у bootstrap 4 И заинтересовало меню от туда, но возникла проблема там 20к строк кода и вручную...

212
HTML: при нажатии на переключатель radio - отобразить числовое поле ввода в той же линии

HTML: при нажатии на переключатель radio - отобразить числовое поле ввода в той же линии

При нажатии на переключатель типа radio "Указать размер" поле ввода отображается под переключателем (в колонке),а необходимо в отобразить в одной...

188