Доброе время суток, столкнулся с проблемой, есть запрос SQL который работает довольно долго
select
*
from
`brands`
where
exists (
select
*
from
`products`
where
`brands`.`id` = `products`.`brand_id`
and `show` = 1
and exists (
select
*
from
`categories`
where
`products`.`category_id` = `categories`.`id`
and (`id` = 9
or `parent_id` = 9)))
Знаю что люди как то переписывают их на join что бы быстрее работало
опирался на похожий случай
Пытался переписать так:
SELECT
*
from
brands
inner join products ON
`brands`.id = `products`.brand_id
left join categories ON
`products`.`category_id` = `categories`.`id`
where
products.`show` = 1 and (categories.id = 9 or categories.parent_id = 9);
Но данных приходит больше чем надо
В первом случае
вернет 6 записей а во втором 16
Собственно есть идеи как поправить запрос?