Ich versuche, Informationen aus einer Tabelle selbst zu verbinden, um eine Hierarchie anzuzeigen (die Tabelle enthält Mitglieder, die aus Kindern und deren Eltern bestehen). Der Tabellenname ist 'Mitglieder', die vier wichtigen Spalten sind ID, vollständiger Name, vater_id und mother_id. Die IDs in den Spalten vater_id und mother_id stimmen mit den entsprechenden IDs in der Spalte 'id' überein. Als Ergebnis der Abfrage möchte ich eine Tabelle mit drei Spalten haben, mit Spaltennamen "Name", "Vater" und "Mutter"So erhalten Sie eine Dreifach-Self-Join-Funktion
Ich suchte Google, W3 Schulen und Stapelüberlauf, die am nächsten zu was ich war auf der Suche nach einem Thema war ich hier gefunden, die so genannte ‚Erklärung der Selbst verbindet‘, das den folgenden Beispielcode hatte:
select
c1.Name , c2.Name As Boss
from
emp1 c1
inner join emp2 c2
on c1.Boss_id = c2.Id
ich die Abfrage wie folgt verändert (ich noch nicht einmal wagen, den dritten umfassen Spalte noch: ')):
select
c1.full_name as Name, c2.full_name as Father
from
members1 c1
inner join members2 c2
on c1.father_id = c2.id
Leider habe ich eine Fehlermeldung erhalten Folgendes: 1146 - Tabelle 'ppstb.members1' existiert nicht
Ich vermutete, dass es etwas damit zu tun hatte, wie ich zwei Tabellen simuliert habe. Das nächste, was ich experimentierte mit ist:
select
c1.full_name , c2.full_name as Father
from
members c1, members c2
inner join members c2
on c1.father_id = c2.id
Aber das gibt auch einen Fehler: 1066 - Nicht eindeutige Tabelle/Alias: ‚c2‘ Welchen Schritt bin ich dabei?
Für # 1146 Fehler: Tabelle Namen sind Groß-und Kleinschreibung. Verwenden Sie den richtigen Fall? – Arulkumar
@Arulkumar nach seinen Abfragen sein Tabellenname ist Mitglieder, aber er verwendet seinen Namen als members1 in dieser Abfrage, die das Problem ist –