Задать вопрос

Как правильно составить алгоритм?

Есть 3 таблицы, у всех одинаковые поля, первые две заполнены данными, третья - пустая.
В первой лежат данные, к примеру 0, 1, 2. Во второй - 0, 3, 4. Надо записать в третью таблицу результат сравнения первых двух: если в первой и второй таблице есть дубли (здесь дубли нули) - в третью это поле не добавлять, и если во второй таблице есть поля, которых нет в первой (3, 4) - их тоже в третью не добавлять.
Прошу расписать алгоритм действий, что за чем делать, без способов реализации, просто схематически, как бы вы эту задачу решали.
Спасибо.
  • Вопрос задан
  • 359 просмотров
Подписаться 1 Простой 9 комментариев
Решения вопроса 1
@eandr_67
web-программист (*AMP, Go, JavaScript, вёрстка).
Из множества строк первой таблицы вычитаем множество строк второй таблицы и результат записываем в третью таблицу. В MySQL это делается единственным SQL-запросом INSERT ... SELECT. Но так как в MySQL не реализована SQL-команда EXCEPT (разность множеств), то используется её эмуляция стандартным приёмом (описываемом в любом учебнике) через LEFT JOIN и IS NULL:

INSERT INTO table3
SELECT table1.*
FROM table1
LEFT JOIN table2
  ON table1.id = table2.id
WHERE table2.id IS NULL
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы