Я работаю над объединением старой базы данных в новую.В новой базе данных у меня есть четыре таблицы базы данных: 'task_clone', 'potential_task', 'task'
и 'task_archive'
.
'task_clone'
содержит все записи базы данных типа задача, импортированные из более старой базы данных, и я пытаюсь распределить эти записи поостальные три таблицы в новой базе данных.'task_clone'
, следовательно, временная таблица.
'task_clone'
содержит 649 записей.Структура данных не очень легко отображается в новую базу данных, и после копирования строк из 'task_clone'
общая сумма записей трех других таблиц составляет 566, что означает, что в 'task_clone'
есть 83 записи, которые еще не былисопоставлены с новой структурой.
Я пытаюсь запросить 'task_clone'
, чтобы выяснить, какие записи находятся в трех других таблицах, которых нет в 'task_clone'
.
Все три таблицы содержат столбец 'task_id'
, который является уникальным идентификатором для каждой записи задачи.Поэтому я должен иметь возможность запрашивать базу данных и получать все столбцы 'task_id'
в 'task_clone'
, возвращая значения, которые не совпадают с значениями в других трех таблицах.
Я знаю, что это возможно в одном запросе, но я не могу понять, что синтаксис правильный.Куда я иду не так и как это должно быть написано?Сначала я попытался:
SELECT task_clone.task_id
FROM task_clone
WHERE
task_clone.task_id != potential_task.task_id
AND task_clone.task_id != task.task_id
AND task_clone.task_id != task_archive.task_id;
Я также рассмотрел некоторые другие подходы к этому с двумя таблицами (то есть, возвращая значения из одной, которых не было в другой), но я не смог найти пример, который мог быперевести аккуратно в решение, которое будет работать для более чем двух таблиц без получения сообщений об ошибках.Спасибо за прочтение.
ПРИМЕЧАНИЕ. В ответ на это отметили, как дубликат: Этот вопрос не является дубликатом тех предыдущих вопросов, которые касаются конкретно двух таблиц, поскольку мой вопрос специально касается работы с четырьмя таблицами.Решение, представленное в цитируемом вопросе, хотя и с использованием примерно одинакового синтаксиса, не обеспечивает решение вопроса о 4 таблицах.Кроме того, в своем вопросе я четко заявляю, что посмотрел предыдущие ответы в стеке, которые касаются двух таблиц, и я не смог перевести их в четыре без получения сообщений об ошибках.