Я предполагаю, что у вас, вероятно, возникают проблемы с использованием идентификаторов таблиц в предложении FROM. Я украл несколько примеров из одной из моих баз данных. Так что это не удастся:
DELETE FROM Session s WHERE s.startTime<=date_sub(NOW(),INTERVAL 30 day);
Что действительно странно, потому что простая замена «УДАЛИТЬ» на «ВЫБОР *» работает.
Но это будет хорошо работать:
DELETE FROM Session WHERE startTime<=date_sub(NOW(),INTERVAL 30 day);
DELETE s FROM Session s WHERE s.startTime<=date_sub(NOW(),INTERVAL 30 day);
Синтаксические странности. Веселье! : -D