Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/34: Рейтинг темы: голосов - 34, средняя оценка - 4.82
34 / 34 / 6
Регистрация: 24.11.2015
Сообщений: 330

Удаление записей из нескольких таблиц

13.10.2016, 09:09. Показов 7171. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как сделать, чтобы запись удалялась сразу из нескольких таблиц. Помогите разобраться
У меня есть таблица :base,ocenka1,student
Я сделал, но запись не удаляется
SQL
1
2
3
DELETE student,base,ocenka1 FROM student INNER JOIN 
base INNER JOIN ocenka1 WHERE student.id =ocenka1.id_student
 AND ocenka1.id_student = base.id_student AND student.id_student=446;
Миниатюры
Удаление записей из нескольких таблиц  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.10.2016, 09:09
Ответы с готовыми решениями:

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

Выборка из нескольких таблиц. Дублирование записей
Всем привет! Возникла проблема с выводом (совмещением) записей из нескольких таблиц. В каждой из таблиц, которые я хочу вывести...

Проверка значений столбцов записей нескольких таблиц
Здравствуйте, запрос должен выводить информацию опираясь на имя Усик Олексій Андрійович и проверки значения н_Бібліотеки этого Усика в 2ух...

12
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
13.10.2016, 09:34
И не удалится, зачем поля перечислять после delete?

Добавлено через 3 минуты
да ещё и джойн, лучше так:
T-SQL
1
2
3
4
delete * from student where student.id in(
select id FROM student INNER JOIN 
base INNER JOIN ocenka1 where student.id =ocenka1.id_student
 AND ocenka1.id_student = base.id_student AND student.id_student=446)
подзапрос весьма странный, где все ON?
0
 Аватар для VinniPuh
9130 / 6135 / 593
Регистрация: 27.03.2013
Сообщений: 19,986
13.10.2016, 09:40
Если бы таблички были связаны связями, то у них можно было бы поставить галочку - Каскадное удаление.
0
34 / 34 / 6
Регистрация: 24.11.2015
Сообщений: 330
13.10.2016, 22:34  [ТС]
Даже таким образом не работает как эту проблему решат уже не знаю.
SQL
1
2
3
4
5
6
 DELETE  student, ocenka1   
FROM student                              
LEFT JOIN student ON student.id = ocenka1.id_student     
LEFT JOIN ocenka1 ON    ocenka1.id_student = student.id    
WHERE                               
     student.id=446;
0
шапоклякистка 8-го дня
 Аватар для texnik-san
3681 / 2241 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
14.10.2016, 00:12
Khaker_tt, между DELETE и FROM ставится * и больше не пишется ничего. Это единственный вариант синтаксиса запроса на удаление в аксес.

Далее. Удаление в одном запросе возможно только из одной таблицы. Если вы перечисляете в предложении FROM несколько таблиц, то удаление либо будет выполнено из таблицы на стороне "наиболее много" (если удается ее однозначно определить), либо не будет выполнено вообще.

Внешнее соединеие в таком запросе лишено всякого смысла (самостоятельно подумайте, почему).

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

SQL
1
2
3
4
5
DELETE  *   
FROM student                               
  INNER JOIN ocenka1 
  ON ocenka1.id_student = student.id    
WHERE student.id=446;
SQL
1
2
3
DELETE  *   
FROM student                               
WHERE student.id=446;
2
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
14.10.2016, 07:56
Цитата Сообщение от alvk Посмотреть сообщение
зачем поля перечислять после delete?
через 13 часов:
Цитата Сообщение от Khaker_tt Посмотреть сообщение
DELETE student, ocenka1
FROM student
Добавлено через 5 часов 47 минут
Повторяю ещё раз: "Чукча не читатель - чукча писатель."
Кликните здесь для просмотра всего текста
Модератор, учите пословицы и поговорки, никаких грамматических ошибок тут нет! Тут есть смысл, который кое-кому пора зарубить себе на носу.


p.s. Бедно не пишу, бог дал родиться с русским языком родным.
0
шапоклякистка 8-го дня
 Аватар для texnik-san
3681 / 2241 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
14.10.2016, 08:39
alvk, так он поля и не перечислял: это таблицы были
0
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
14.10.2016, 08:46
Цитата Сообщение от texnik-san Посмотреть сообщение
это таблицы были
0
34 / 34 / 6
Регистрация: 24.11.2015
Сообщений: 330
14.10.2016, 14:40  [ТС]
alvk, http://stackoverflow.com/quest... -one-query посмотрите 66
0
Мы один, давай на "ты"
3849 / 1393 / 345
Регистрация: 16.06.2016
Сообщений: 3,286
14.10.2016, 15:28
Khaker_tt, для тех кто не понимает языка на котором написано в ссылке
i have two tables in mysql
Перевод
У меня есть две таблицы в MySQL
Теперь вопрос ТС'у - Khaker_tt, ТЫ В КАКОЙ ПРОГРАММЕ ПИШЕШЬ?
В MS Access! Вот и пиши на диалекте SQL используемом в MS Access.
https://support.office.com/ru-... dc3e460671

https://msdn.microsoft.com/en-... e.12).aspx
0
34 / 34 / 6
Регистрация: 24.11.2015
Сообщений: 330
15.10.2016, 16:31  [ТС]
То есть не возможно удалить из двух таблиц в одном запросе. Это правильно или нет?
0
86 / 86 / 24
Регистрация: 27.02.2010
Сообщений: 397
15.10.2016, 16:48
Правильно, если нет каскадного удаления.
В "продвинутых" СУБД можно использовать триггеры, хранимые процедуры и т.д.
0
шапоклякистка 8-го дня
 Аватар для texnik-san
3681 / 2241 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
15.10.2016, 17:14
Цитата Сообщение от Khaker_tt Посмотреть сообщение
То есть не возможно удалить из двух таблиц в одном запросе. Это правильно или нет?
Цитата Сообщение от texnik-san Посмотреть сообщение
Удаление в одном запросе возможно только из одной таблицы.
Khaker_tt не читатель вообще, да?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.10.2016, 17:14
Помогаю со студенческими работами здесь

Добавление/редактирование записей нескольких таблиц посредством 1 формы
Доброго времени суток! Столкнулся с довольно серьезной проблемой, прошу помощи! Ситуация: Имеется несколько одинаковых таблиц с...

Запрос на удаление из нескольких таблиц
Хочу удалить в одном запросе записи из нескольких таблиц, но система требует указать из какой таблицы удаляются записи. Если удаляю...

Удаление нескольких записей в подчиненной форме
Добрый день. Есть подчиненная форма с таблицей и кнопочка в родительской форме. Выделяю _несколько_ строк, жамкаю кнопочку - удаляется...

Удаление записей из связанных таблиц через Access
Проблема такая. Есть My SQL server на машине А и БД написанная на Access 2010 локальная на машине Б, нужно сделать ее сетевой. Через...

Как перехватить событие - удаление нескольких записей
Добрый день! Возникла заминка в следующем вопросе: При удалении записи из таблицы проводилась ее архивация на событии формы удаление ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru