Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
 Аватар для Fellinggood
2 / 2 / 0
Регистрация: 06.06.2009
Сообщений: 324

Сделать запрос на удаление в базе данных в Delphi 2010

10.05.2011, 18:48. Показов 1353. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте мне нужно сделать запрос на удаление данных из одной таблицы
Book_Author, на основе связанных между собой таблиц Book, Thematic и Book_Author.
Ситуация следующая мне нужно удалить данные о какой либо тематике (Thematic),
этой тематике принадлежат некоторые книги (внешний ключ id_thematic из таблицы
Thematic) - их тоже нужно удалить, но сперва нужно удалить данные из таблицы
Book_Author - внешний ключ у нее id_Book. Вообщем вопрос как опираясь на таблицы
Thematic и Book составить запрос на удаление данных из таблицы Book_Author зная что определенная тематика
будет удалена.
Ключи этих таблиц Thematic - собственный ключ id_thematic, Book - собственный ключ id_Book,
внешний ключ id_thematic, Book_author - внешний ключ id_Book.
Связи таблиц представлены ниже:
http://www.imagepost.ru/?v=dsfds.JPG
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.05.2011, 18:48
Ответы с готовыми решениями:

Сделать запрос на удаление в базе данных
Здравствуйте мне нужно сделать запрос на удаление данных из одной таблицы Book_Author, на основе связанных между собой таблиц Book,...

Используя функции категории Работа с базой данных в excel 2010, реализовать запрос к базе данных
Используя функции категории Работа с базой данных, реализовать запрос к базе данных: средняя закупочная цена для одного вида мороженого.

Сделать запрос к базе данных?
Добрый день. В редакторе изображений (попап, "карандаш") есть параметр "ссылка", у которого может быть 4 значения: Как можно...

2
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
10.05.2011, 21:44
Насколько я понял, база спроектирована неверно.
Вот нормальный вариант:

SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
1. Таблица тематик Themes
  tid        autoinc   UID записи
  [ptid     longint     ссылка на UID парентской темы  ] (для иерархического справочника)
  pname   VARCHAR   наименование\
    ...
 
2. Таблица авторов  Autors
 aid         autoinc   UID записи
 aname    VARCHAR   фамилия
 aname2  VARCHAR   имя
 aburn     DATE       дата рождения
    ...
 
3. Таблица книг    Books
  bid         autoinc   UID записи
  tid         longint     ссылка на UID тематики
  bname    VARCHAR    наименование книги
  bpbld     VARCHAR     наименование издательства
  byear     INTEGER     год выпуска
 
4. Таблица авторов  AutorList (обеспечивает хранения нескольких авторов одной книги)
  bid        longint     ссылка на bid
  aid        longint     ссылка на aid
 
 
Тогда запросы:
 
- Удаление книги
BEGIN trans;
DELETE  FROM AutorList WHERE aid=<UID книги>;
DELETE FROM Books WHERE aid=<UID книги>;
commit trans;
 
- Удаление раздела
BEGIN trans;
DELETE FROM Autors 
   WHERE aid IN (SELECT aid FROM books WHERE tid=<UID темы>);
DELETE  FROM AutorList 
   WHERE aid IN (SELECT aid FROM books WHERE tid=<UID темы>);
DELETE FROM Themes WHERE tid=<UID темы>);
commit trans;
0
92 / 46 / 22
Регистрация: 11.02.2010
Сообщений: 187
11.05.2011, 08:59
Я так поняла вам нужен запрос, который удаляет, именно из таблицы BOOK_AUTHOR, на основании данных из таблицы THEMATIC?!

SQL
1
2
DELETE * FROM BOOK_AUTHOR WHERE id_book IN (SELECT id_book  FROM BOOK WHERE id_thematic IN(
SELECT id_thematic FROM THEMATIC WHERE id_thematic = "айди удаляемой тематики"))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.05.2011, 08:59
Помогаю со студенческими работами здесь

Сделать запрос к базе данных?
нужно вывести информацию по классам прикрепленных изображений для каждого поста каждого изображения т.е. в каждом посте найти все...

Как сделать запрос к базе данных?
есть таблицы: 1. операции с товарами(код,договор,дата,товар,количество,единица,тип операции) 2. операции -(код,тип операции)...

Необходимо сделать запрос по базе данных, сломал голову
Помогите пожалуйста сделать запросы и отчеты по базе данных в delphi. Сломал голову, а курсач горит и нужно сдавать. Вот все, что...

Как правильно сделать запрос поиска в базе данных?
Здравствуйте. Подскажите пожалуйста, как решить задачу: Есть таблица БД: tbl_post с объявлениями. Есть поле в этой таблице: ...

По готовой базе данных Access сделать базу в Delphi 7
здравствуйте, кто может по готовой базе данных аксес сделать базу в делфи 7? до вечера. скайп (Контакт удалён)


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru