Сложный sql запрос

Pavel6

Новичок
Сложный sql запрос

Есть таблица товаров и есть таблица рубрик для товаров, у нас товары могут находится в нескольких рубриках, для этого у нас есть таблица keys_rubrics_tovar в которой хранится ID товара и ID рубрики.
Теперь вопрос как вывести только те товары которые участвуют сразу в двух или больше рубриках.
Вот такой запрос выводит товары которые попадают под одну из таких рубрик.
select tovar.* from keys_rubrics_tovar left join Tovar on Tovar.id= keys_rubrics_tovar.tovar_id where keys_rubrics_tovar.rubric_id in (1,2)
данный запрос выведет товары которые находятся в рубрике 1 или в рубрике 2, а мне нужно вывести только те которые входят одновременное в две рубрики 1 и 2.
 

dimagolov

Новичок
джойни одновременно 2 рубрики и накладывай условие, чтобы они различались
 

prolis

Новичок
[sql]
select tovar_id from keys_rubrics_tovar
group by tovar_id
having count(distinct rubric_id)>1
[/sql]
 

prolis

Новичок
Автор оригинала: dimagolov
prolis, но это же должно строить временную таблицу?
в условиях задачи не стояло составить запрос самым нетривиальным способом
хотя, "сложный" - тема топика
 

dimagolov

Новичок
prolis, да нет, я просто о том, что зачем давать менее эффективное решение, если уже дали более эффективное?
 

weregod

unserializer
dimagolov
используя Ваши решения ТС может не научиться explain'у и прочему
 
Сверху