Ich habe eine Aussage wie so:MySQL eine Summe Nummer erstellen, wenn Zeile in der Tabelle existiert
select * from category a
inner join category b on a.row=b.relatedRow
inner join category c on b.row=c.relatedRow where a.row=?
Ich möchte die Anzahl der „Ebenen“ erhalten, wie so
Wenn eine Zeilen hat , level = 1, Wenn b hat Reihen, level = 2, Wenn c hat Reihen, level = 3
Wie kann ich das tun? Vielen Dank.
Beispiel
row, relatedRow
1,null
2,1
3,2
4,3
5,2
6,5
So wird 1 nicht auf eine Zeile bezogen ist 2 zu 1 bezogen, 3 auf 2 und so weiter ...
Wenn row = 1, verwandte 1-Ebene existiert seit 1
Ebene existiert 2 besteht seit 2 bis 1
Pegel bezogen ist, da gibt es 3 3 und 5 wird im Zusammenhang mit 2
Stufe 4 besteht seit 6-5 zusammenhängt und 4 auf 3
Deshalb ist dieser Baum 4 Ebenen untergeht verwandt.
Ich bin nicht sicher, was Sie mit "hat Zeilen" meinen. Willst du sagen, dass wenn relatedRow in der Joined-Tabelle vorhanden ist, du eine Spalte 'level = 1,2,3' hinzufügen willst? Können Sie Ihren Post bearbeiten, um Beispielzeilen von 'a, b, c' und der erwarteten Abfrageausgabe für die gegebenen Beispieleingabezeilen anzuzeigen? –
Und was ist der Vorrang? Wenn b und c beide Zeilen haben, ist der Level dann 2 (b) oder 3 (c)? –
Mein Tisch ist wie ein Baum. Es gibt verwandte Reihen von Reihen und diese können auch verwandte Reihen haben. Ich würde gerne die Anzahl der Ebenen finden, in denen der Baum untergeht. Ich weiß, dass es eine Grenze von 3 Stufen hat. Ich brauche eine Zahl, die generiert wird und mir die Anzahl der Ebenen angibt, die dieser Baum je nach Parameter hat. Wenn A Zeilen hat, Ebene 1, wenn B Zeilen hat, Ebene 2, wenn C Zeilen hat, Ebene 3 ... Und ich möchte diese Nummer 1-3 verwenden können. –