Originariamente inviato da in the web
@Holidaysoft.it purtroppo le tue query sono sbagliate. Se hai una GROUP BY, nella query puoi selezionare solo:
* i campi che sono presenti nella GROUP BY
* altri campi, ma solo se passati ad una funzione aggregante (come MAX)
Diversamente, MySQL preleva gli altri campi da una riga scelta a caso. E' per questo che consiglio di usare sempre l'sql_mode ONLY_FULL_GROUP_BY.

Ulteriori dettagli qui:
http://dev.mysql.com/doc/refman/5.5/...xtensions.html

Credo comunque che non ci siano query più ottimali di quella che ho consigliato sopra...
..........non a caso ho indicato anche la query:

SELECT `order_id` , `order_status_id`
FROM `order_history` A,
(SELECT MAX( order_history_id ) order_history_id
FROM `order_history`
GROUP BY `order_id`) B
WHERE A.order_history_id=B.order_history_id
WHERE A.`order_history_id`

che dovrebbe dare la possibilità di estrarre quello che vuoi dalla tabella A...

Ciao
Mik