Проверка на валидность записи
Подскажите пожалуйста как мне проверить на валидность запись.
Есть таблица name в ней имена актеров, person_info хранит факты о актерах. Между собой связаны по name.id = person_info.person_id. Как проверить, что в таблице фактов об актерах нет ссылок на несуществующих актеров. Я думаю что там через full join, но даже приблизительно не знаю как это сделать. Поэтому код не прикладываю
Ответы (2 шт):
Как проверить, что в таблице фактов об актерах нет ссылок на несуществующих актеров.
SELECT *
FROM person_info
WHERE NOT EXISTS ( SELECT NULL
FROM name
WHERE name.id = person_info.person_id )
вернёт все такие записи.
Если вернётся пустой набор - таких записей нет.
Как проверить, что в таблице фактов об актерах нет ссылок на несуществующих актеров.
Предлагаю использовать LEFT JOIN. Следующий запрос выберет все записи и выведет список тех, у которых отсутствует name.id.
SELECT
*
FROM
person_info AS pi
LEFT JOIN name AS n ON pi.person_id = n.id
WHERE n.id IS NULL