убить детей, а в конце родителя.

Печать RSS
196

Автор
Дедушка
0
Помогите засунуть все в 1 запрос.
есть таблица категорий и таблица моделей.
В таблице моделей записи ссылаются на id категории.

При удалении категории нужно прибить всех детей в таблице моделей, а затем убить родителя в таблице категорий. Одним запросом. Связаны по ID
Что то ничего у меня не получается

2000 лет д.н.э.
0
двумя не судьба?
delete chld where mather_id = $id
delete mather where id = $id

Голубые штаны
0
2. ramzes, только хотел сказать
З.Ы. Тему назвал - прямо как журналист программы Максимум D

Чатланин
0
3. dima.london, Это он и есть obana

Голубые штаны
0
Попробуй что-то типа
DELETE FROM `children` WHERE `children_id`=`roditel_id` UNION ALL DELETE FROM `roditel` WHERE `roditel_id`=ID
Изменил: Дмитрий (14.05.2011 / 01:50)
K

Транклюкаторщик
0
2. ramzes, ну а допустим мне нужно удалить со всеми детьми?
допустим
вложения:
1/2/3
delete from `category` where `parent`='1'; // удаляем категорию 2
delete from `category` where `id`='1'; // удаляем саму категорию 1
а категория 3 останется нетронутой.
тут нужна рекурсия, только как это реализовывать я даже не знаю.
может что то с помощью array_walk_recursive, хз
Изменил: KOZZ (14.05.2011 / 05:21)
Автор
Дедушка
0
2. ramzes, dima.london, если я спрашиваю, значит не судьба, 100500 запросов гонять не есть хорошо.

Добавлено через 07:06 сек.
5. dima.london, ERROR: syntax error at or near "UNION"
А

Чатланин
0
погугли на тему каскадное удаление

2000 лет д.н.э.
0
7. Basters, 2 вроде как не 100500 ;)
вопрос о многих категориях не стоял.
Но опять же 2 запроса, только с IN('1', '2', '3')
A

Чатланин
0
InnoDB в помощь. Определяешь внешние ключи и связи (ON DELETE CASCADE), при удалении строки в родительской таблице, удалятся и все чилды, т.е. одним запросом.
http://scabbiaza.net/innodb.html
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск