ВЫБЕРИТЕ DISTINCT и ORDER BY в MySQL
Кажется, что в версии 5.7 MySQL, они добавили одну неприятную вещь, которая была (или все еще остается) реальнойГоловная боль для тех, кто имеет дело с SQL Server.
Дело в том, что MySQL выдает ошибку, когда вы пытаетесьSELECT DISTINCT
строки для одного набора столбцов и хотятORDER BY
другой набор столбцов. Раньше в версии 5.6 и даже в некоторых сборках версии 5.7 вы могли это делать, но теперь это запрещено (по крайней мере, по умолчанию).
Я надеюсь, что существует некоторая конфигурация, некоторая переменная, которую мы могли бы установить, чтобы она работала. Но, к сожалению, я не знаю эту неприятную переменную. Я надеюсь, что кто-то знает это.
РЕДАКТИРОВАТЬ
В моем случае это типичный запрос, который работал буквально в течение многих лет (до последней сборки MySQL 5.7):
SELECT DISTINCT a.attr_one, a.attr_two, a.attr_three, b.attr_four FROM table_one a
LEFT JOIN table_two b ON b.some_idx = a.idx
ORDER BY b.id_order
И действительно, если я сейчас включуb.id_order
кSELECT
часть (как MySQL предлагает сделать), то, что я получу, будет мусором.