У меня есть две таблицы, упрощенные до следующего:
users:
+-----+------+-----------+
| id | name | timestamp |
+-----+------+-----------+
vouchers:
+-----+------+
| id | code |
+-----+------+
У меня также есть третья таблица, содержащая пары идентификаторов:
recipients:
+-----+------+------+
| id | u_id | v_id |
+-----+------+------+
Мне нужно периодически вставлять новые пары идентификаторов в таблицу получателей, когда строка пользователя старше двух недель (запрос будет запускаться один раз в день). Идентификаторы, уже присутствующие в таблице получателей, извлекать не следует.
В настоящее время я не могу найти эффективный способ возврата произвольно парных идентификаторов из двух начальных запросов SELECT:
1. SELECT id FROM users WHERE date < NOW() - INTERVAL 2 WEEK AND id not in (select u_id from recipients)
2. SELECT id FROM vouchers WHERE id not in (select v_id from recipients) limit *by number of retrieved user IDs*
Пока что все мои попытки соединения не смогли достичь желаемого результата. Я нашел решение, использующее два вышеупомянутых запроса, с циклом PHP for для объединения результатов перед их вставкой, но я прекрасно понимаю, что это плохо.
Заранее спасибо,