ORDER BY-satsen körs efter att allt annat i SELECT-satsen körs; i ett GROUPing-scenario är resultatuppsättningen begränsad till de kolumner som används för att aggregera data. Om du inte har en kolumn specificerad i din första resultatuppsättning förstår inte bearbetningsmotorn vad den ska göra med den begärda utdata.
Med andra ord, eftersom din fråga inte returnerar distinkta värden för t2.id och t1.id (eftersom de inte används i GROUP BY-satsen), kan motorn inte returnera data i den ordningen.