Подскажите как объединить 4 запрос на удаление в один?

Amateur7
Дата: 12.02.2013 19:38:00
Добрый день.
Запрос
DELETE FROM table1 WHERE iduser='$user';
DELETE FROM table2 WHERE iduser='$user';
DELETE FROM table3 WHERE iduser='$user';
DELETE FROM table4 WHERE iduser='$user';
//по каждому запросу выполняется $res=mysqli($sql), где $sql - сам запрос на удаление.


Подскажите как выполнить вместо 4 запросов один?

P.S.: а то что-то засиделся, не соображу никак...
romy4
Дата: 12.02.2013 19:39:47
Amateur7
Дата: 12.02.2013 19:47:53
romy4,

я пробовал так

DELETE FROM table1,table2,table3,table4 USING table1 INNER JOIN table2 INNER JOIN table3 INNER JOIN table4
WHERE table1.iduser=table2.iduser AND table2.iduser=table3.iduser AND table3.iduser=table4.iduser AND table4.iduser='$user'


Запрос выполняется, правда долго, но в результате никакого ответа и все записи на месте, не удаляются.
ошибок в запросе phpmyadmin не показывает...
miksoft
Дата: 12.02.2013 19:59:08
Amateur7
Подскажите как выполнить вместо 4 запросов один?
А зачем?
Не вижу в этом никакого выигрыша.
Amateur7
Дата: 12.02.2013 20:01:16
miksoft,

да хотя бы для знаний

P.S.: если спрашиваю, значит зачем то же нужно?
miksoft
Дата: 12.02.2013 20:08:42
DELETE FROM table1,table2,table3,table4 USING table1 INNER JOIN table2 INNER JOIN table3 INNER JOIN table4
WHERE table1.iduser='$user' AND table2.iduser='$user' AND table3.iduser='$user' AND table4.iduser='$user'
Но если хотя бы в одной таблице не найдется ни одной записи для удаления, то записи не будут удалены и из всех остальных таблиц.
И обойти этот эффект в рамках одного DELETE, похоже, нельзя.
qwerty112
Дата: 12.02.2013 20:08:59
Amateur7
miksoft,

да хотя бы для знаний

P.S.: если спрашиваю, значит зачем то же нужно?

не тот случай, автор

ты спрашиваеш такую "глупость", из которой следует ("значит") только одно - человек "дупля не отбивает" в вопросе

---
гуглить по таким словам :
mysql foreign key
mysql create trigger
miksoft
Дата: 12.02.2013 20:11:37
qwerty112
гуглить по таким словам :
mysql foreign key
mysql create trigger
Имхо, больше похоже на ручное секционирование, чем на форин кей.
Amateur7
Дата: 12.02.2013 20:17:16
qwerty112,

не соглашусь, т.к. одно дело это нецелесообразно а другое дело как говорит человек постом выше, если не будет хотя бы одной записи, то удаления не будет.Разумеется запрос будет бессмысленным, если будет отсутствовать хотя бы одни из параметров, но лучше получить подтверждение, все-таки прогресс на месте не стоит) хотя конечно лучшее подтверждение - мануал...


Спасибо)
javajdbc
Дата: 12.02.2013 20:38:42
>> хотя конечно лучшее подтверждение - мануал...

мануал-шмануал....

Идея в том что ДЕЛЕТЕ удаляет то что ФРОМ
найдет. Замените ДЕЛЕТЕ на СЕЛЕТ * и все будет понятно.