Здравствуйте!
У меня есть таблица Модели и таблица Разделы
Таблица Модели (model)
id name cat
1 Corolla 2
2 Camry 2
3 VFR800 5
Таблица Разделы (cat)
id name sub_id
1 Авто 0
2 Седаны 1
3 Универсалы 1
4 Мотоциклы 0
5 Спортивные 4
В таблице Разделы, есть разделы с cat.sub_id=0 (Главные разделы) и cat.sub_id=cat.id (Подразделы Главного раздела)
Необходимо:
1. На странице Родительского раздела вывести все модели и название Родительского раздела.
2. На странице Подраздела вывести модели относящиеся к Подразделу и название Подраздела.
Решение: (id нам известно, оно может только одно, для главного раздела, или для подраздела)
Пример 1
select model.name, (select cat.name where cat.id=1) as catname
from model,cat
where model.cat in (select cat.id from cat where cat.id=1 or cat.sub_id=1)
and model.cat = cat.id
Выведет Авто и модели Corolla, Camry
Пример 2
select model.name, (select cat.name where cat.id=2) as catname
from model,cat
where model.cat in (select cat.id from cat where cat.id=2 or cat.sub_id=2)
and model.cat = cat.id
Выведет Седаны и модели Corolla, Camry
Эти запросы работают, но меня смущают подзапросы. Это хороший вариант или есть более красивое решение?