Die ORDER BY-Klausel wird ausgeführt, nachdem alles andere in der SELECT-Anweisung ausgeführt wurde; In einem GROUPing-Szenario ist die Ergebnismenge auf die Spalten beschränkt, die zum Aggregieren der Daten verwendet werden. Wenn in Ihrer anfänglichen Ergebnismenge keine Spalte angegeben ist, versteht die Verarbeitungs-Engine nicht, was mit der angeforderten Ausgabe geschehen soll.
Mit anderen Worten, da Ihre Abfrage keine unterschiedlichen Werte für t2.id und t1.id zurückgibt (da sie nicht in der GROUP BY-Klausel verwendet werden), kann die Engine die Daten nicht in dieser Reihenfolge zurückgeben.