У меня такой запрос:
SELECT * FROM
(SELECT * FROM persons ORDER BY date DESC) AS p
GROUP BY first_name,last_name,work_phone
Если вы еще не разобрались, это удаляет записи с дублирующимися именами и рабочими номерами, оставляя только самые последние.В таблице person есть еще одно поле, о котором вы должны знать, это двоичное поле DELETED.
Проблема в том, что если есть дубликат такого типа, я не хочу, чтобы строка рассматривалась, если ееУДАЛЕННОЕ значение равно ИСТИНА, независимо от того, насколько недавно его значение даты.Однако, если в строке нет дубликатов, она должна быть включена в результаты независимо от того, какое значение DELETED она имеет.
Если дубликаты существуют, никогда не будет случая, когда все дубликаты имеют DELETED = TRUE, по крайней мере, один не будетбыть удаленным.