У меня есть таблица Счет a со столбцами Customers_id , account_id и last_activity_date и другой таблицей Транзакция t с датой транзакции txn_date столбец в моей базе данных.Я хочу обновить a.last_activity_date , чтобы оно было max (t.txn_date) .Некоторые учетные записи клиентов могут не иметь txn_date от t.Чтобы избежать нулевого значения в обновленной a.last_activity_date , я добавил подзапрос, используя WHERE EXISTS
.Вот код:
UPDATE account a
SET a.last_activity_date =
(SELECT MAX(t.txn_date)
FROM transaction t
WHERE t.account_id = a.account_id)
WHERE EXISTS (SELECT 1
FROM transaction t
WHERE t.account_id = a.account_id);
Но этот подзапрос не работает:
Сообщение об ошибке: в синтаксисе SQL имеется ошибка;проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса, который можно использовать рядом с 'ОТ транзакции t ГДЕ t.account_id = a.account_id) ГДЕ СУЩЕСТВУЕТ (ВЫБЕРИТЕ 1 FRO' в строке 4.
Может ли кто-нибудь помочь мне с этим, пожалуйста? Большое спасибо.