Heim  >  Artikel  >  Datenbank  >  Wie verbinde ich eine Tabelle zweimal in verschiedenen Spalten, um verwandte Daten abzurufen?

Wie verbinde ich eine Tabelle zweimal in verschiedenen Spalten, um verwandte Daten abzurufen?

DDD
DDDOriginal
2024-10-24 14:16:02477Durchsuche

How to Join a Table Twice on Different Columns to Retrieve Related Data?

Der gleichen Tabelle zweimal in verschiedenen Spalten beitreten

Stellen Sie sich ein Szenario vor, in dem Sie eine Benutzertabelle und eine Beschwerdetabelle haben. Die Beschwerdetabelle enthält die Benutzer-ID sowohl der Person, die die Beschwerde geöffnet hat, als auch der Person, die sie geschlossen hat. Ziel ist es, eine Abfrage zu schreiben, die die Benutzernamen dieser beiden Personen anzeigt.

Zunächst kann eine Abfrage den Benutzernamen der Person abrufen, die die Beschwerde eröffnet hat:

SELECT user.username, complaint.complaint_text
FROM complaint
LEFT JOIN user ON user.user_id=complaint.opened_by

Allerdings zu Um den Benutzernamen der Person abzurufen, die die Beschwerde geschlossen hat, müssen Sie der Benutzertabelle erneut beitreten und dabei eine andere Spalte verwenden. Dies wird mit der folgenden Abfrage erreicht:

SELECT 
     complaint.complaint_text, 
     A.username, 
     B.username
FROM 
     complaint 
     LEFT JOIN user A ON A.user_id=complaint.opened_by 
     LEFT JOIN user B ON B.user_id=complaint.closed_by

In dieser Abfrage:

  • Tabelle A wird zum Verknüpfen mit der Spalte „opened_by“ verwendet.
  • Tabelle B ist Wird verwendet, um der Spalte „closed_by“ beizutreten.

Durch zweimaliges Beitreten zur Benutzertabelle können Sie die Benutzernamen sowohl der Person abrufen, die die Beschwerde geöffnet als auch geschlossen hat, und so umfassende Informationen zu jeder Beschwerde anzeigen.

Das obige ist der detaillierte Inhalt vonWie verbinde ich eine Tabelle zweimal in verschiedenen Spalten, um verwandte Daten abzurufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn