Запрос SQL 3(Удаление из таблицы)

программирование MySQL образование базы данных sql

Есть таблица лога.

{ID, Name, FileType, FileName, LoadDate}

Требуется оставить в таблице только последние по дате {LoadDate} имена файлов {FileName} для каждой комбинации {Name, FileType} остальное удалить.

Пример:

Данные:

ID Name FileType FileName LoadDate
4 A01 F1 n1 01.01.2012
5 A03 F1 n2 10.01.2012
6 A03 F2 n3 15.01.2012
7 A03 F2 n4 05.01.2012

Результат:

ID Name FileType FileName LoadDate
4 A01 F1 n1 01.01.2012
5 A03 F1 n2 10.01.2012
6 A03 F2 n3 15.01.2012
Ответы:
DELETE table_log.*,w1.t1 FROM table_log LEFT JOIN (SELECT Name AS t1, FileName AS t2,FileType AS t3, Max(LoadDate) AS t4 FROM table_log  GROUP BY Name,FileName, FileType) AS w1 ON (table_log.LoadDate = w1.t4) AND (table_log.FileType = w1.t3) AND (table_log.FileName =w1.t2) AND (table_log.Name =w1.t1) WHERE (((w1.t1) Is Null));


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.