Wie zu verwenden UM VON innen UNION

Möchte ich verwenden, UM auf jedem UNION ALL Abfragen, aber ich kann nicht herausfinden, die richtige syntax. Dies ist, was ich will:

(
SELECT id, user_id, other_id, name 
FROM tablename 
WHERE user_id = 123 AND user_in IN (...) 
ORDER BY name
)
UNION ALL
(
SELECT id, user_id, other_id, name 
FROM tablename 
WHERE user_id = 456 AND user_id NOT IN (...) 
ORDER BY name
)

BEARBEITEN:
Nur um klar zu sein: ich brauche zwei geordnete Listen wie diese, nicht:

1
2
3
1
2
3
4
5

Vielen Dank!

Die ORDER BY-Klauseln in der Abfrage (innerhalb der Klammern) werden nicht berücksichtigt (laut MySQL-Referenz-Handbuch.) MySQL ist frei, um zurückzukehren, die Zeilen in beliebiger Reihenfolge, da es keine ORDER BY auf die Abfrage. (Für die Anweisung angezeigt, in die Frage, ein ORDER BY Klausel wäre erforderlich, am Ende der Anweisung, nach diesem letzten schließenden Klammer. Um die zurückgegebenen Zeilen in der angegebenen Reihenfolge, eine Möglichkeit ist, um ein "Diskriminator" - Spalte (d.h. eine ausgeprägte Literale zurückgegeben, die in jeder Abfrage, und fügen Sie dann die Spalte in der ORDER BY - Klausel.

InformationsquelleAutor VORiAND | 2014-07-10

Schreibe einen Kommentar