Il GROUP BY serve per "raggruppare" dei dati e non per scegliere un record. Con GROUP BY e/o DISTINCT viene preso il primo record che viene fisicamente trovato e che soddisfi la condizione richiesta.
Prova a fare un ordinamento prima della query con alter table....
Per entrambe le tabelle ovviamente. Questo pero' lo devi ripetere sempre prima della query, perche' eventuali record aggiunti successivamente si troveranno sempre fisicamente al fondo cioe' in APPEND alla tabella stessa.codice:ALTER TABLE arts ORDER BY catid DESC
@edit...
i campi MAX() MIN() ecc... in realta' non esistono. Vengono formati dalla query e mostrati in unione al primo record incontrato nella tabella che soddisfa la richiesta. Non e' casuale, assolutamente. E' il primo che si incontra scorrendo la tabella.