Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Достать всё одним запросом, без циклов

444
22 октября 2008 года
patison
323 / / 15.03.2007
Привет народ!
Есть таблица с категориями/подкатегориями. Необходимо достать id всех категорий у которых нету дочерних категорий.

Можно конечно в цикле сделать, но не хотелось-бы грузить базу запросами, если можно всё одним запросом сделать.

Вот структура:
8.2K
22 октября 2008 года
Ora-cool
211 / / 20.09.2007
СУБД какая? В простейшем случае:

select t.id from table1 t
where t.id not in (select parent_id from table1 t1);

либо

select t.id from table1 t
where t.id not in (select parent_id from table1 t1 where t1.parent_id = t.id);
444
22 октября 2008 года
patison
323 / / 15.03.2007
субд - mysql.
Ага, варианты рабочие :) Действительно просто. Никогда до сих пор не работал с подзапросами :)

Теперь задача усложняется. Сколько ни искал выход - так и не придумал ничего кроме рекурсии.
Вобщем на входе имеем id категории. Из неё нужно достать id-шки подкатегорий, которые не являются родителями. Тут уже немного сложнее..
8.2K
23 октября 2008 года
Ora-cool
211 / / 20.09.2007
Ну если в mysql нет иерархических запросов, то только через хранимую процедуру или на клиенте.
444
23 октября 2008 года
patison
323 / / 15.03.2007
А что если на сервере в скрипте? (php). Собсна так и сделал пока что...
13
23 октября 2008 года
RussianSpy
3.0K / / 04.07.2006
На сервере в скрипте можно...
444
24 октября 2008 года
patison
323 / / 15.03.2007
Ага, ну значит в моём случае спасает только рекурсия, как я собсна и сделал :)
Спасибо всем. Вопрос можно считать исчерпанным
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог