Heim >Datenbank >MySQL-Tutorial >Wie kann man vier Tabellen in MySQL effizient verknüpfen, um doppelte Datensätze zu vermeiden?

Wie kann man vier Tabellen in MySQL effizient verknüpfen, um doppelte Datensätze zu vermeiden?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-19 19:49:11344Durchsuche

How to Efficiently Join Four Tables in MySQL to Avoid Duplicate Records?

Verknüpfen mehrerer Tabellen in MySQL mit INNER JOIN

Bei der Arbeit mit relationalen Datenbanken wie MySQL können Sie durch das Verknüpfen von Tabellen Daten aus mehreren Tabellen abrufen Tabellen basierend auf gemeinsamen Spalten. Dieses Tutorial führt Sie durch den Prozess der Verknüpfung von drei Tabellen: Bestellungen, Produktpreise und Produkte.

Problembeschreibung

Zum Abrufen von Produkten, die sich auf einen bestimmten Benutzer beziehen, und Einschließen eines Hyperlink zu jedem Produkt, eine vierte Tabelle mit Auflistungen muss hinzugefügt werden. Die aktuelle Abfrage gibt jedoch doppelte Datensätze aus der Auflistungstabelle zurück.

Lösung

Um dieses Problem zu beheben, ändern Sie die Abfrage wie folgt:

SELECT 
  p.id,
  p.name,
  l.url,
  o.user_id,
  o.pricing_id
FROM orders AS o
INNER JOIN products_pricing AS pp ON o.pricing_id  = pp.id
INNER JOIN products         AS  p ON pp.product_id = p.id
INNER JOIN listings         AS  l ON l.user_id = o.user_id
WHERE o.user_id ='7' 
  AND l.id = 233 
  AND l.url = 'test.com';

Erklärung:

  • l.id = 233 und l.url = 'test.com' sind zusätzliche Bedingungen die die Ergebnisse auf den spezifischen Eintrag mit der ID 233 und der URL test.com beschränken.
  • Die INNER JOIN-Klauseln stellen sicher, dass nur übereinstimmende Datensätze aus allen vier Tabellen zurückgegeben werden.

Ausgabe

Für die bereitgestellten Beispieldaten gibt die aktualisierte Abfrage Folgendes zurück:

| ID | NAME | URL | USER_ID | PRICING_ID |

| 33 | Testprodukt | test.com | 7 | 37 |

Diese Ausgabe enthält die Produkt-ID, den Namen, die Angebots-URL, die Benutzer-ID und die Preis-ID für den spezifischen Benutzer mit Benutzer-ID 7.

Das obige ist der detaillierte Inhalt vonWie kann man vier Tabellen in MySQL effizient verknüpfen, um doppelte Datensätze zu vermeiden?. 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