@AnGSt Naja klar, du sortierst nach etwas, das in einem Teil deiner Einträge nicht auftaucht... dh der Teil der auftaucht wird sortiert und der Rest in zufälliger Ordnung darunter gemischt...
Lösen kannst du das, indem du einfach mehrere Prioritäten für die Sortierung festlegst,
"Order by C2.Name $sort_directions, C1.Name $sort_directions" oder ähnlich, kA was du in $sort_directions für einen Inhalt verwendest.
Alternativ kannst du beim Abfragen der Tabelle mit "as" ein Alias für Spalten vergeben und nach dem Alias sortieren.
http://www.1keydata.com/sql/sql-as.html (Archiv-Version vom 24.10.2012)