У меня есть 2 таблицы с именами и графиком дат, связанных с этими именами.Я пытаюсь получить список всех имен, которые никогда не были запланированы или не были запланированы в течение последних 2 месяцев.
SELECT n.name, MAX(s.date)
FROM names n
LEFT JOIN schedule s ON n.id = s.nameid
WHERE s.nameid IS NULL
OR s.nameid NOT IN (SELECT nameid
FROM schedule
WHERE date > NOW() - INTERVAL 2 MONTH)
GROUP BY n.id
Когда я запускаю этот запрос, MySQL берет на себя процессор и не отвечает.
Когда я изменяю его на любой из них, я получаю результаты, но только половину результатов, которые я ищу:
SELECT n.name, MAX(s.date)
FROM names n
LEFT JOIN schedule s ON n.id = s.nameid
WHERE s.nameid IS NULL
GROUP BY n.id
SELECT n.name, MAX(s.date)
FROM names n
LEFT JOIN schedule s ON n.id = s.nameid
WHERE s.nameid NOT IN (SELECT nameid
FROM schedule
WHERE date > NOW() - INTERVAL 2 MONTH)
GROUP BY n.id
Я не уверен, как заставить этот запрос работать для возвратавсе результаты или почему он занимает центральный процессор.