Проблема: Найдите людей, чьи дни рождения завтра (таблица a), у которых нет записи с датой выпуска, установленной за последние 360 дней из (таблица b)
Table a
ID, DOB
Table b
ID, PID, Issued
У меня естьзапрос, но он довольно медленный, не уверен, что соединение будет быстрее - любая помощь приветствуется ..
SELECT a.ID, a.DOB FROM a
WHERE MONTH(a.DOB)=MONTH(now()) # match month
AND DAYOFMONTH(a.DOB)=DAYOFMONTH(now()+ INTERVAL 1 DAY) # match day of month
AND (
SELECT COUNT(*) FROM b
WHERE b.PID = a.ID
AND b.Issued < DATE_SUB(SYSDATE(), INTERVAL 360 DAY)
) < 1 # hacky subquery to find not issued in past 360 days