Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Многотабличное удаление

Сообщения:  [1-5] 

 
 автор: Trianon   (04.10.2006 в 21:21)   письмо автору
 
   для: Trianon   (04.10.2006 в 19:57)
 

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

$sql = "DELETE  FROM  users 
  LEFT JOIN users_tel ON users.id_user=users_tel.id_user  
  LEFT JOIN users_address ON users.id_user=users_address.id_user  
  LEFT JOIN users_ds ON users.id_user=users_ds.id_user  
  LEFT JOIN users_activations_codes ON users.id_user=users_activations_codes.id_user  
 WHERE  users.id_user = ".$_GET['id_user']." 

Но, по-моему, такой код скорее вреден, чем наоборот.

   
 
 автор: Trianon   (04.10.2006 в 19:57)   письмо автору
 
   для: tAleks   (04.10.2006 в 18:47)
 

В чем задумка-то?
Почему не удалить записи из каждой таблицы отдельным запросом?

   
 
 автор: tAleks   (04.10.2006 в 18:47)   письмо автору
 
   для: Trianon   (03.10.2006 в 23:35)
 

И как быть? Какой надо запрос чтобы уветаки задумка работала?

   
 
 автор: Trianon   (03.10.2006 в 23:35)   письмо автору
 
   для: tAleks   (03.10.2006 в 22:03)
 

такая форма запроса удалит записи лишь в том случае, если они есть в каждой из пяти таблиц.

   
 
 автор: tAleks   (03.10.2006 в 22:03)   письмо автору
 
 

Есть запрос:

$sql = "DELETE 
                users, 
                users_tel, 
                users_address, 
                users_ds,
                users_activations_codes
            FROM 
                users, 
                users_tel, 
                users_address, 
                users_ds,
                users_activations_codes
            WHERE 
                users.id_user = ".$_GET['id_user']."
                AND users_tel.id_user = ".$_GET['id_user']."
                AND users_address.id_user = ".$_GET['id_user']."
                AND users_ds.id_user = ".$_GET['id_user']."
                AND users_activations_codes.id_user = ".$_GET['id_user'];


И почему-то он не работает. Поле id_user есть в каждой таблице. Т.е. надо удалить из 5 таблиц все записи где id_user = $_GET['id_user']

   

Сообщения:  [1-5] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования