Помогите с сложным запросом к базе или какую можно альтернативу

Enemy753

Новичок
Помогите с сложным запросом к базе или какую можно альтернативу

Есть таблицы "категория", "подкатегория", "брэнд", "товар".

При добавления товара в таблицу "товар" в столбцы еще записываются idкатегории idподкатегории idбрэнда.

На сайте значит есть гатегория под ней подкатегории, когда переходишь по одной из подкатегорий должа быть страница с брэндами.
Т.е. должно обратиться к базе с товарами выбрать товары в которых есть id категории и подкатегории, а потом из этой выборки выбрать из столбца с id брэндов уникальные id (понятно что они часто повторяются) и потом по этим idбрэндов выбрать из таблицы с брэндами имена брэндов, как лучше реализовать такую выборку????
Если сложно то как можно это решить???


таблица "категория" (id, имя)
таблица "подкатегория" (id, idкатегории, имя )
таблица "брэнд" (id, имя)
таблица "товар" (id, idкатегории, idподкатегории, idбрэнда, товар)
 

aragorn

Новичок
select t1.*,t2.*,t3.*,t4.* from tovar as t1 inner join podkategoria as t2 on t1.idpodkategoria = t2.id inner join kategoria as t3 on t2.idkategoria = t3.id inner join brand as t4 on t1.idbrand = t4.id group by t4.id

в результате у тебя должна быть таблица с разными полями, одно из которых имя брэнда.
 

Enemy753

Новичок
блин идею я понял, предположим делаем ткой код:

select t1.brandid, t2.brandname from sp_products as t1 inner join sp_brand as t2 on t1.brandid = t2.brandid group by t2.brandid

но куда мне вставить условие выборки для базы "sp_products as t1" которое выглядит так "t1.catmainid = '$catmainid' and t1.catid = '$catid'"
 

Enemy753

Новичок
добалять примеолединением on t1.brandid = t2.brandid and t1.catmainid = '$catmainid' and t1.catid = '$catid'

или where?
 

aragorn

Новичок
через where конечно.
Сперва ты соединяешь несколько таблиц с нужными ключами, потом выбираешь нужные строки, потом группируешь
 

Enemy753

Новичок
select t1.brandid, t2.brandname from sp_product as t1 inner join sp_brand as t2 on t1.brandid = t2.brandid where t1.catmainid = '$catmainid' and t1.catid = '$catid' group by t2.brandid


ругается

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in
 

aragorn

Новичок
ты делай mysql_query($sql) or die(mysql_error()) чтоб увидеть какую ошибку возвращает база. или попробуй запустить запрос через phpadmin
 
Сверху