Um eine Frage stellen immer die simplier lassen vermuten wir zwei Tabellen mit wenigen Spalten haben und eine Eins-zu-viele-Beziehung ...Kombinieren JOIN mit „Kind“ Reihen
first
mit Feldernid
,some_field
undsecond_id
.second
mit Feldernid
,parent_id
Zuerst ich
SELECT first.id, first.some_field, second.id, second.parent_id
FROM first INNER JOIN second ON first.second_id = second.id
WHERE some_field="some_val"
Aber danach muss ich first.id
, bekommen first.some_field
, second.id
aus der Verbindung von zwei Tabellen, in denen parent_id
unter den Werten in jeweiligen Spalte des Ergebnisses der obigen Abfrage.
Ist das mit einer Abfrage möglich? Oder (auf PHP-Seite) muss ich Spalte in Ergebnismenge nehmen und etwas wie folgt tun?
SELECT first.id, first.some_field, second.id, second.parent_id
FROM first INNER JOIN second ON first.second_id = second.id
WHERE parent_id IN (<many_ids_here>)
Dies wird als eine hierarchische Abfrage oder einer rekursiven Abfrage durchgeführt. Leider unterstützt mySQL diese Konzepte nicht. Es gibt eine Arbeit mit globalen Variablen: http://stackoverflow.com/questions/20215744/how-to-create-a-mysql-hierarchical-recursive-query oder Sie müssen Joins zwischen Tabellen für die Anzahl der Ebenen Sie wiederholen möchte unterstützen. – xQbert