Sembra che nella versione 5.7 di MySQL, hanno aggiunto una cosa brutta che era (o è ancora) un vero headache per coloro che si occupano di SQL Server.SELECT DISTINCT e ORDER BY in MySQL
Il fatto è: MySQL genera un errore, quando si tenta di SELECT DISTINCT
righe per un set di colonne e si desidera ORDER BY
un altro insieme di colonne. In precedenza, nella versione 5.6 e persino in alcune versioni della versione 5.7, si poteva fare ciò, ma ora è proibito (almeno per impostazione predefinita).
Spero che esista qualche configurazione, alcune variabili che potremmo impostare per farlo funzionare. Ma sfortunatamente non conosco quella brutta variabile. Spero che qualcuno lo sappia.
EDIT
Questa è una domanda tipica nel mio caso che ha lavorato letteralmente per anni (fino a quando l'ultima build di 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
E, in effetti, se ora includo b.id_order
alla parte SELECT
(come suggerisce MySQL), quindi quello che otterrò, sarà spazzatura.
È questo la query effettiva? – Strawberry
Sì, è una query del mondo reale. – Jacobian