delete t1 from pg_acymailing_listsub t1
join pg_acymailing_subscriber tt on t1.subid = tt.subid
join pg_users t2 on tt.userid = t2.id
where NOW() > t2.registerDate + interval 90 day and t1.listid=7 and (
exists (
SELECT * FROM pg_acymailing_listsub WHERE pg_acymailing_listsub.listid=1 AND pg_acymailing_listsub.subid = t1.subid AND pg_acymailing_listsub.status=-1 LIMIT 1
) OR t1.subid not in (
select pg_acymailing_userstats.subid from pg_acymailing_userstats where pg_acymailing_userstats.subid = t1.subid and pg_acymailing_userstats.open > 0
)
);
В чем проблема? Я думаю, что нужно использовать подзапросы, но я не представляю, как использовать его в моем запросе.«Вы не можете указать целевую таблицу« t1 »для обновления в предложении FROM». Как удалить строки?
нет 'update' ??? – Rahul
неправильный синтаксис удаления: заменить 'delete t1 from' на' delete from' –
Изменено с помощью 'delete from', но ошибка:' 1064 - У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с 't1 join pg_acymailing_subscriber tt на t1.subid = tt.subid join' в строке 1' – bars96