ОБНОВЛЕНО РЕДАКТИРОВАНИЕ:
Будут ли DISTINCT или GROUP BY произвольно использовать другие поля в запросе, чтобы исключить дубликаты, или выбрать верхнюю строку, или каким-либо образом учесть ORDER BY?
У меня есть запрос монстра, где я работаю с большим количеством соединенных таблиц, я хотел бы опубликовать все это, но его проприетарное, так что кусочков и кусочков будет достаточно, но здесь идет пример в сборе - я пытаюсь чтобы точно выяснить, что делает MySQL, когда он группирует и выводит строки, основываясь на следующем типе запроса (в действительности это около 2 страниц).
Версия 1 - предназначена для устранения дубликатов записей ID2
SELECT SQL_NO_CACHE SQL_CALC_FOUND_ROWS
DISTINCT ID1
, ID2
, ID2_Sequence
, DATE1
, DATE2
, <SECRET GUTS OMITTED>
GROUP BY ID2
ORDER BY DATE1 DESC
*sometimes ORDER BY DATE2 DESC*
Версия 2 - предназначена для показа всех записей
SELECT SQL_NO_CACHE SQL_CALC_FOUND_ROWS
DISTINCT ID1
, ID2
, ID2_Sequence
, DATE1
, DATE2
, <SECRET GUTS OMITTED>
GROUP BY ID1
ORDER BY DATE1 DESC
*sometimes ORDER BY DATE2 DESC*
Есть несколько других объединений, которые являются частью этого, но я думаю, что это суть этого. Основная проблема, с которой приходится бороться и почему мы исключаем дубликаты, заключается в том, что существуют однозначные ID1-ID2 и ID2 на основе другого поля для последовательности ID2.
При первом рассмотрении данных (около 70 столбцов так сложно определить, что фильтруется), выглядело так, как будто удалялись записи со старым DATE1, но я не уверен, что это так?
Спасибо