Heim > Datenbank > MySQL-Tutorial > Wie verknüpfe ich eine Tabelle in MySQL selbst, um Daten aus mehreren Zeilen abzurufen?

Wie verknüpfe ich eine Tabelle in MySQL selbst, um Daten aus mehreren Zeilen abzurufen?

Mary-Kate Olsen
Freigeben: 2025-01-03 07:05:39
Original
527 Leute haben es durchsucht

How to Self-Join a Table in MySQL to Retrieve Data from Multiple Rows?

So verknüpfen Sie dieselbe Tabelle mehrmals in MySQL

In Szenarien, in denen Sie Datensätze aus derselben Tabelle mehrmals innerhalb eines Zeitraums verknüpfen müssen Abfrage bietet MySQL die Möglichkeit, eine Tabelle mit sich selbst zu verknüpfen. Dadurch können Sie Daten aus verschiedenen Zeilen derselben Tabelle abrufen und so effektiv eine neue Beziehung zwischen den Zeilen erstellen.

Um dieses Konzept zu veranschaulichen, stellen Sie sich das folgende Szenario vor:

Sie haben zwei Tabellen: „Domains“ und „Bewertungen“. In der Tabelle „Domänen“ werden Domänen-IDs und Domänennamen gespeichert, während die Tabelle „Bewertungen“ Bewertungsdaten enthält und auf Domänennamen sowohl für den Absender (rev_dom_from) als auch für den Empfänger (rev_dom_for) verweist.

Ihre Aufgabe besteht darin, beide anzuzeigen Domainnamen auf einer Webseite. Während Sie mit einem standardmäßigen LEFT JOIN problemlos einen Domainnamen anzeigen können, stellt sich die Frage: Wie rufen Sie den zweiten Domainnamen aus der Spalte „rev_dom_from“ ab?

Die Lösung liegt in der Verwendung mehrerer Joins. Durch mehrfaches Verknüpfen der „Domains“-Tabelle können Sie unterschiedliche Beziehungen zwischen den Bewertungen und den entsprechenden Domainnamen herstellen:

SELECT toD.dom_url AS ToURL, 
    fromD.dom_url AS FromUrl, 
    rvw.*

FROM reviews AS rvw

LEFT JOIN domain AS toD 
    ON toD.Dom_ID = rvw.rev_dom_for

LEFT JOIN domain AS fromD 
    ON fromD.Dom_ID = rvw.rev_dom_from
Nach dem Login kopieren

In dieser Abfrage:

  • toD ist der Alias für die erste Instanz der verbundenen „Domänen“-Tabelle, die den „An“-Domänennamen darstellt.
  • fromD ist der Alias ​​für die zweite Instanz der verbundenen „Domänen“-Tabelle, die den „Von“-Domänennamen darstellt.

Durch Aliasing der verbundenen Tabellen können Sie zwischen den beiden Instanzen unterscheiden und die gewünschten Daten abrufen. Diese Technik, dieselbe Tabelle mehrmals zu verknüpfen, wird allgemein als „Selbstverknüpfung“ bezeichnet und kann in verschiedenen Szenarien angewendet werden, in denen Sie mehrere Beziehungen innerhalb einer einzelnen Tabelle herstellen müssen.

Das obige ist der detaillierte Inhalt vonWie verknüpfe ich eine Tabelle in MySQL selbst, um Daten aus mehreren Zeilen abzurufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage