У меня есть две таблицы:базы данных MySQL, связанные с
purchase_mis(id, user_id, total_purchased, date)
daily_purchase(id, user_id, product_id, paid_amount, purchase_date)
У меня есть файл CRON, который работает каждую ночь, он считает ежедневную покупку от "daily_purchase"
стола и бежит insert into "purchase_mis"
.
Например:
SELECT
COUNT(*) AS purchase_count,
purchase_date
FROM daily_purchase
GROUP BY user_id;
Это возвращает purchase_count
для каждого пользователя, а затем он будет вставлен в "purchase_mis"
таблице.
INSERT INTO
purchase_mis(user_id, total_purchased, date)
VALUES
('2', 'purchase_count', 'purchase_date');
Но перед установкой, он должен проверить, если приобретенная информация user_id = 2
на какой-то даты «purchase_date
» уже вставлен, так что не следует вставить снова.
Я хочу что-то вроде ниже запроса:
INSERT INTO
purchase_mis(user_id, total_purchased, date)
VALUES
('2', 'purchase_count', 'purchase_date')
WHERE date NOT EXISTS (SELECT date FROM purchase_mis WHERE user_id = '2');
Не используйте символьные литералы для чисел. ''2'' является символом, а не числом. Если 'user_id' определяется как, например, целое число, вы должны использовать '2' - никаких одинарных кавычек вокруг значения. –