#mysql #sql #date #compare
Вопрос:
Как сравнить 2 таблицы с датами и проверить, какая дата отсутствует, и вставить дату с помощью Mysql ??
таблица 1 : appweb_ind_exeindicadores — СТОЛБЕЦ: dataindicador
таблица 2 : календарь — СТОЛБЕЦ: dataindicador2
изображение:
изображение:
Комментарии:
1. Используйте
SELECT
запрос, который получает все строки из таблицы 2, которых нет в таблице 1. Затем используйте это в качестве исходных данных для anINSERT INTO table1
.
Ответ №1:
Вы можете использовать что-то вроде приведенного ниже, чтобы получить список дат в одной таблице, но не в другой, а затем написать ВСТАВКУ вокруг этого, чтобы добавить ее.
-- This will give you the dates in table 1 but not in table 2
SELECT DISTINCT table1.date
FROM table1
WHERE table1.date NOT IN (SELECT DISTINCT table2.date2 FROM table2)
Комментарии:
1. на рисунке 1 таблицы 1 у меня есть некоторые даты, которые не отображаются, например: 2021-09-11 и 2021-09-14, мне нужно ввести эти даты, чтобы запрос проверял и вставлял вручную
Ответ №2:
Если вам нужны уникальные даты calendteste
, я бы посоветовал вам позволить базе данных выполнить проверку. Итак, создайте уникальное ограничение для столбца:
alter table calendteste add constraint unq_calendteste_dataindicador2
unique (dataindicador2);
Затем вы можете вставить строки и использовать on duplicate key update
их для обработки дубликатов:
INSERT INTO calendteste (dataindicador2)
SELECT distinct dataindicador
FROM appweb_ind_exeindicadores
ON DUPLICATE KEY UPDATE dataindicador2 = VALUES(dataindicador2);
Фактическая логика заключается в отсутствии операции-обновление не происходит, но ошибка дубликата ключа игнорируется. Это безопасный способ убедиться, что в столбце нет дубликатов.
Комментарии:
1. на рисунке 1 таблицы 1 у меня есть некоторые даты, которые не отображаются, например: 2021-09-11 и 2021-09-14, мне нужно ввести эти даты, чтобы запрос проверял и вставлял вручную