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

Форум MySQL

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Многотабличный запрос на удаление
 
 автор: Tema   (30.06.2006 в 09:14)   письмо автору
 
 

Есть три таблицы. Из них надо удалить строки, в которых определенное поле совпадает с $_GET['id']?
Т.е. что-то вроде этого:

DELETE FROM tb1, tb2, tb3 WHERE tb1.id_name='".$_GET['id']."' AND tb2.Id_tb2='".$_GET['id']."' AND tb3.id_tb3='".$_GET['id']."'

   
 
 автор: Trianon   (30.06.2006 в 09:47)   письмо автору
 
   для: Tema   (30.06.2006 в 09:14)
 

Почему именно одним запросом?

   
 
 автор: Tema   (30.06.2006 в 10:06)   письмо автору
 
   для: Trianon   (30.06.2006 в 09:47)
 

А как еще?

   
 
 автор: Trianon   (30.06.2006 в 10:11)   письмо автору
 
   для: Tema   (30.06.2006 в 10:06)
 

Тремя. Таблиц-то три.

   
 
 автор: Tema   (30.06.2006 в 10:31)   письмо автору
 
   для: Trianon   (30.06.2006 в 10:11)
 

Дело в том, что $_GET['id']-то один и тот же для всех трех таблиц. И будет ли это выгоднее, по скорости, по объему кода? Три запроса.

   
 
 автор: Trianon   (30.06.2006 в 10:48)   письмо автору
 
   для: Tema   (30.06.2006 в 10:31)
 

Вероятно, одним будет выгоднее.

   
 
 автор: Tema   (30.06.2006 в 11:14)   письмо автору
 
   для: Trianon   (30.06.2006 в 10:48)
 

Вот и я так подумал, поэтому прошу помочь составить такой запрос.

   
 
 автор: Trianon   (30.06.2006 в 11:43)   письмо автору
 
   для: Tema   (30.06.2006 в 11:14)
 

Так Вы ж его сами и написали? :)))

   
 
 автор: Tema   (30.06.2006 в 11:52)   письмо автору
 
   для: Trianon   (30.06.2006 в 11:43)
 

Просто такой у меня не работал, я уже понял что из-за древности MySQL, думал что я что-то не так делаю, или как-нибудь покороче можно составить :)

   
 
 автор: Trianon   (30.06.2006 в 12:01)   письмо автору
 
   для: Tema   (30.06.2006 в 11:52)
 

а такой?

DELETE FROM tb1, tb2, tb3 
WHERE tb1.id_name=tb2.Id_tb2 AND tb2.Id_tb2=AND tb3.id_tb3
AND tb1.id_name=$id

   
 
 автор: Tema   (30.06.2006 в 12:29)   письмо автору
 
   для: Trianon   (30.06.2006 в 12:01)
 

Помог вот такой:

DELETE tb1.*, tb2.*, tb3.* FROM tb1, tb2, tb3 WHERE 
tb1.id_name=tb2.Id_tb2 
AND 
tb2.Id_tb2=tb3.id_tb3 
AND 
tb1.id_name=$id 

   
Rambler's Top100
вверх

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