2017-06-09 3 views
0

Wie kann ich Ergebnisse verwenden, die ich von einer Abfrage zu einer anderen Abfrage erhalte, die ich mit UNION verknüpfe? Ich versuche, den Root-Link und alle seine Kinder mit einer einzigen Verwendung der SQL-Abfrage zu entfernen. Ich könnte natürlich das Ergebnis bekommen, dann mit PHP einen weiteren Abfrageanruf machen, aber es lieber nicht so machen, wenn möglich. Bisher habe ich kam zu diesem Code, der nicht funktioniert:MySQL - Verwenden von Abfrageergebnissen in einer anderen UNION-Abfrage

SELECT id AS layer1 
FROM AdminNavigation 
WHERE id = 1 

UNION 

SELECT id AS layer2 
FROM AdminNavigation 
WHERE parentId = layer1 

UNION 

SELECT id AS layer3 
FROM AdminNavigation 
WHERE parentId = layer2 
+0

Von den Blicken von ihm Ich denke, Sie verschachtelte Kinder wollen, aber ich bin nicht sicher. Können Sie Beispieldaten und die erwartete Ausgabe hinzufügen, damit klar ist, was Sie wollen. –

Antwort

1
SELECT id AS layer1 
FROM AdminNavigation 
WHERE id = 1 

UNION 

SELECT id AS layer2 
FROM AdminNavigation 
WHERE parentId in(SELECT id 
FROM AdminNavigation 
WHERE id = 1 
) 

UNION 

SELECT id AS layer3 
FROM AdminNavigation 
WHERE parentId in (
SELECT id 
FROM AdminNavigation 
WHERE parentId in(SELECT id 
FROM AdminNavigation 
WHERE id = 1 
)) 

Sie kann nicht einfach innere Abfrage so einfach Auflösung setzen. Wie ich oben in Abfrage versucht habe.

hoffen, dass dies hilft

+0

Danke, das hat funktioniert (obwohl am Ende die letzte Klammer fehlte). – Donatas

+0

Ja, ich hatte das Update. –

Verwandte Themen