PDA

Просмотр полной версии : sql запрос


barnaki
30.01.2009, 19:45
помогите плиз постоить sql запросу
вообщем есть 2 таблицы из которых нужно 1 запрос удалить из каждой по одной строке . они совпадают по столбцам id_msg и msg_id . это ключи.
delete from guest,answers where id_msg=msg_id=2; не работает . но удалять надо по 2
или любой другой цифре которую сюда можно вписать .

eLWAux
30.01.2009, 19:52
DELETE FROM `guest`, `answers` WHERE `id_msg` = '2' AND `msg_id` = '2' LIMIT 1;

barnaki
30.01.2009, 20:08
не работает можно без Limit

barnaki
31.01.2009, 16:46
вот как надо было
DELETE FROM guest,answers USING guest INNER JOIN answers WHERE guest.id_msg = answers.msg_id AND answers.msg_id =2;

VDShark
01.02.2009, 01:24
JOIN сильно будет затормаживать работу. особенно если отношния достаточно большие. М.б. имеет смысл сделать нечто вроде такого:

start transaction;
SET @id = 5;
DELETE .... WHERE ... = @id;
DELETE .... WHERE ... = @id;
commit;

barnaki
01.02.2009, 14:53
нет я одним запросом . я тоже думал . но это всего лишь гостевая. и связи не такие сложные чтобы разбивать его на несколько запросов

VDShark
01.02.2009, 16:19
2 barnaki
Извини меня за сленг) Под словом "отношение" в бд понимается таблица, а не связь :)

barnaki
07.02.2009, 14:41
страшно спросить как называется сама база . но любопытство сильнее .

VDShark
07.02.2009, 16:05
barnaki Так и обзывается - база... Ну либо схема :)