У меня есть список больниц (FacilityID_UUID), которые должны отправлять данные каждый день (дата = create_date).Кто не сообщил о дате? mysql нет в списке
В данный день я хотел бы установить, о чем не сообщалось в предыдущий день.
работы с этим:
SELECT `FacilityID_UUID`
FROM `TEST`
where `FacilityID_UUID` not in (
SELECT distinct `FacilityID_UUID`
FROM `TEST`
where `Create_Date` = '2014-09-16'
)
(заменит даты с SYSDATE или интервал 1 день)
Однако, у меня есть две проблемы с этим:
1- это тааак медленно ! Бежал как 30 минут, и я не ожидаю более 20 результатов). Как я могу сделать это быстрее?
2- это только дает мне имена больниц, которые представили хотя бы один раз в прошлом, но не вчера. Если в среду начнет поступать больше больниц, я бы хотел, чтобы запрос в четверг подхватил это. В принципе, я хотел бы сказать: «Дайте мне больницы в списке X, который не был представлен вчера», и напишите сам список X.
Любые идеи
что-то вроде левого внешнего соединения, вероятно, быстрее, чем in. Тогда просто найдите все результаты, когда какое-либо поле в левой таблице равно null. Также, начиная с вашей маленькой таблицы, вероятно, это хороший способ повысить скорость, –
«ТЕСТ» * только * соответствующая таблица? (Это кажется странным, если это так и, вероятно, необходимо исправить.) Что такое * полное определение схемы и множественность FacilityID_UUID? Как «Дата создания» связана с «датой отправки»? – user2864740