Angenommen, wir haben die folgenden Daten in der Tabelle My_Tabel
genannt:Auswählen eindeutiger Werte aus sich selbst verweisende Tabelle
╔═══════════╦═════════════╦════════════╗
║ ID ║ Person_Name ║ Partner_ID ║
╠═══════════╬═════════════╬════════════╬
║ 101 ║ John ║ 3 ║
║ 100 ║ Miller ║ 0 ║
║ 3 ║ Ruby ║ 101 ║
║ 180 ║ Jack ║ 0 ║
║ 199 ║ George ║ 65 ║
║ 23 ║ Joseph ║ 0 ║
║ 34 ║ Fredrick ║ 117 ║
║ 117 ║ Jinan ║ 34 ║
║ 122 ║ Verena ║ 0 ║
║ 65 ║ Mary ║ 199 ║
╚═══════════╩═════════════╩════════════╝
Wo 0 Werte in Partner_ID Spalte zeigt an, dass er/sie Single ist.
Wir müssen wiederholen oder Duplizierung partnered Personen angezeigt werden, ohne, sollte das gewünschte Ergebnis wie folgt aussehen:
╔═════════════╦══════════════╗
║ Person_Name ║ Partner_Name ║
╠═════════════╬══════════════╬
║ John ║ Ruby ║
║ George ║ Mary ║
║ Fredrick ║ Jinan ║
╚═════════════╩══════════════╝
was ist die beste SQL-Abfrage, die die obigen Ergebnisse zurückgibt?
Ich verwende diesen Code:
SELECT
t1.Name, t2.Name
FROM My_Tabel t1
INNER JOIN My_Tabel t2 ON (t2.ID = t1.Partner_ID)
aber das zurückgegebene Ergebnis ist:
╔═════════════╦══════════════╗
║ Person_Name ║ Partner_Name ║
╠═════════════╬══════════════╬
║ John ║ Ruby ║
║ Ruby ║ John ║
║ George ║ Mary ║
║ Mary ║ George ║
║ Fredrick ║ Jinan ║
║ Jinan ║ Fredrick ║
╚═════════════╩══════════════╝
wie die SQL-Anweisung aktualisiert werden soll (oder durch eine andere ersetzt), um die gewünschten Ergebnisse zu erhalten ?
Was [RDBMS] (https://en.wikipedia.org/wiki/Relational_database_management_system)? –
SQL Server @MaciejLos –