|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
запрос SQL на удаление строк
Помогите пожалуйста написать запрос на удаление записей из 2х таблиц со значением полей совпадающих с значением этих же полей выбранной записи 3ей таблицы
|
#2
|
||||
|
||||
Если не создан индекс с каскадным удалением, то одним запросом не выйдет. Два последовательных придется выполнить:
Код:
delete Table1 from Table1 inner join Table3 on Table1.ID=Table3.ID delete Table2 from Table2 inner join Table3 on Table2.ID=Table3.ID Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
Этот пользователь сказал Спасибо Страдалецъ за это полезное сообщение: | ||
Brons14 (10.05.2015)
|
#3
|
|||
|
|||
Подскажите, а при таком запросе необходимо создавать новую таблицу, или возможно удаление в уже существующих таблицах?
|
#4
|
||||
|
||||
Зачем создавать, просто подставьте вместо Table1, Table2, Table3 из примера имена своих таблиц, и вместо ID укажите ключ ваш.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
Этот пользователь сказал Спасибо Страдалецъ за это полезное сообщение: | ||
Brons14 (10.05.2015)
|
#5
|
|||
|
|||
Так удаляет все записи во второй таблице, использую TADODataSet и не очень разобрался как туда писать запрос SQL вот код:
Код:
with DataModule2.NaDS do begin if Active=True then close; CommandText:='delete DataModule2.NaDS from DataModule2.NaDS inner join DataModule2.HandDS on DataModule2.NaDS.NaDSID_=DataModule2.HandDS.HandDS_' |
#6
|
||||
|
||||
sql запрос оперирует именами таблиц, а не псевдонимами. Вместо DataModule2.NaDS вы должны указать исходное имя таблицы. Аналогично и для DataModule2.HandDS
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
Этот пользователь сказал Спасибо Страдалецъ за это полезное сообщение: | ||
Brons14 (10.05.2015)
|
#7
|
|||
|
|||
Спасибо, очень помогли!
|