Heim > Datenbank > MySQL-Tutorial > Wie vermeide ich doppelte Zeilen beim Zusammenführen mehrerer Tabellen in MySQL?

Wie vermeide ich doppelte Zeilen beim Zusammenführen mehrerer Tabellen in MySQL?

Susan Sarandon
Freigeben: 2024-12-06 07:14:14
Original
793 Leute haben es durchsucht

How to Avoid Duplicate Rows When Joining Multiple Tables in MySQL?

JOIN mit mehreren Tabellen in MySQL

Problem:
Beim Auswählen von Daten aus mehreren Tabellen in MySQL mit einem einfachen JOIN ohne Angabe von Tabellen Unter bestimmten Bedingungen kann es zu doppelten Zeilen kommen, da für jeden übereinstimmenden Schlüssel mehrere Zeilen verbunden werden. Wie können wir diese Duplikate beseitigen und eindeutige Zeilen für jedes Getränk abrufen, einschließlich aller zugehörigen Fotos?

Lösung:
Um dieses Problem zu lösen, müssen wir Gruppierungs- und Aggregationsfunktionen verwenden Kombinieren Sie doppelte Zeilen und wählen Sie daraus einen gewünschten Wert aus.

Zuerst gruppieren wir die Zeilen nach der Drinks_ID, um jeweils nur eine Zeile zu erhalten Getränk:

SELECT name, price, photo
FROM drinks, drinks_photos
WHERE drinks.id = drinks_id 
GROUP BY drinks_id
Nach dem Login kopieren

Dieser Ansatz gibt eine Zeile pro Getränk mit nur einem Foto zurück. Um alle zugehörigen Fotos einzuschließen, können wir die Funktion GROUP_CONCAT verwenden, um die Namen der Fotodateien in einer einzigen Zeichenfolge zu verketten:

SELECT name, price, GROUP_CONCAT(photo, ',')
FROM drinks, drinks_photos
WHERE drinks.id = drinks_id 
GROUP BY drinks_id
Nach dem Login kopieren

Diese Abfrage generiert eine Tabelle mit eindeutigen Getränkezeilen und einer verketteten Zeichenfolge, die alle enthält Fotodateinamen für jedes Getränk.

Beachten Sie, dass GROUP_CONCAT eine MySQL-spezifische Funktion ist und in anderen Datenbanksystemen möglicherweise nicht unterstützt wird. In solchen Fällen müssen möglicherweise alternative Ansätze wie Unterabfragen oder Array-Datentypen in Betracht gezogen werden.

Das obige ist der detaillierte Inhalt vonWie vermeide ich doppelte Zeilen beim Zusammenführen mehrerer Tabellen in MySQL?. 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