В MySQL вы можете использовать on duplicate key update
, чтобы избежать вставки новых пользователей.
Во-первых, вам нужен уникальный индекс или ограничение для payment_issue
:
create unique index unq_payment_issue_id on payment_issue(id);
Примечание. В вопросе не указано, какое имя столбца «идентификатор пользователя» содержится в payment_issue
, поэтому я просто использую id
.
. Затем вставьте фразу как insert . . . select
.
В-третьих, вы должны сформулировать это следующим образом:
INSERT INTO payment_issue (id, status)
SELECT s.id, s.status
FROM subscriptions s LEFT JOIN
subscriptionlog l
ON s.id = l.subscription_id
WHERE l.event LIKE 'payment_error_mode_triggered %' AND
l.date >= 1514764800 AND
l.date <= 1569888000 and
s.status = 'payment-issue'
ON DUPLICATE KEY UPDATE id = VALUES(id);