SQL: удалить из объединенных таблиц, где учитывается условие - PullRequest
0 голосов
/ 09 апреля 2020

У меня есть эти таблицы:

репетиторы :

email firstname, lastname...

курсы :

url  tutorid description

отзывы :

review courseid author

author в reviews и tutorid в courses - это внешний ключ = tutors.email.

Мне нужно удалить все репетиторы которые имеют 2 или более курсов без описания.

Сначала я попробовал выбрать таких репетиторов:

select tutors.email, COUNT(courses.url) 
from courses 
left join tutors on courses.tutorid = tutors.email
where 

description is null group by (tutors.email);

, это работает отлично. Однако я не уверен, как удалить репетиторов с данными электронными письмами, учитывая, что tutors.email является внешним ключом в других таблицах.

1 Ответ

0 голосов
/ 09 апреля 2020

Если вы не удалите записи в связанных таблицах, которые содержат внешний ключ, вы в конечном итоге создадите нечто, называемое потерянными записями, что противоречит правилу ссылочной целостности в РСУБД. Также возможно, что СУБД обеспечит ссылочную целостность, и вы не сможете сделать это до того, как сначала удалите все связанные записи в других таблицах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...