Уважаемые знатоки.
Прошу помощи в понимании и правильном построении запроса к БД, есть 3 таблицы, в одной хранятся данные, по отработанным задачам пользователей, имеет вид id, название задачи, кто выполнял, когда выполнял, в второй таблице хранится график работы, вида id, ФИО пользователя, График работы, в третью базу я пишу данные которые скрипт собирает, а именно кому раздает какую задачу, вид id, id задачи, фио исполнителя.
Вопрос: Как правильно построить запрос, чтобы он выбирал пользователя из графика, с наименьшей датой из таблицы задач с 30 интервалом и при этом смотрел в 3 таблицу, что бы задачи не попадали по 2 раза одному человеку.
Сейчас есть такой запрос:
SELECT * FROM zadachi WHERE zadachi.id_z= {$zad['id']} AND date <= DATE_SUB(CURRENT_DATE, INTERVAL 30 DAY) AND name IN(SELECT name FROM users WHERE day=\"7-19\" OR day=\"9-21\") AND name NOT IN(SELECT user FROM tasktemp) LIMIT 1
Запрос сам отрабатывает вроде нормально, но после обновления страницы в браузере, снова срабатывает AND name NOT IN(SELECT user FROM tasktemp) и собственно все пользователи от туда пропадают.
Может есть какой то способ оптимизировать запрос?
Заранее спасибо.