⊗ppPmDOGD 382 of 447 menu

Abruf von Daten aus verknüpften Tabellen in PHP

Lassen Sie uns eine Abfrage erstellen, die alle Benutzer zusammen mit ihren Städten abruft. Dazu benötigen wir den Befehl LEFT JOIN:

Ihre Syntax sieht folgendermaßen aus:

SELECT Felder FROM Tabellenname LEFT JOIN Name_der_verknüpften_Tabelle ON Verknüpfungsbedingung WHERE Auswahlbedingung

Lassen Sie uns die einzelnen Teile der Syntax dieses Befehls durchgehen.

Felder

Da die Auswahl aus mehreren Tabellen erfolgt, wird die Auswahl aller Felder mit * nicht funktionieren. Die folgende Abfrage wählt nur Felder aus der Haupttabelle, aber nicht aus der verknüpften Tabelle aus:

SELECT *

Damit Daten aus allen Tabellen ausgewählt werden, muss vor * der Name der Tabelle für die Auswahl angegeben werden:

SELECT users.*, cities.*

Alternativ können die benötigten Felder aufgelistet werden, wobei der Tabellenname vor ihnen angegeben wird:

SELECT users.name, cities.name

Diese beiden Methoden haben ein Problem. Und zwar, wenn die Felder in den Tabellen identische Namen haben, kommt es im PHP-Array zu einem Namenskonflikt und es gewinnt nur ein Feld, das zweite wird nicht vorhanden sein.

Um das Problem zu lösen, müssen die konfliktierenden Namen mit dem Befehl as umbenannt werden:

SELECT users.name, cities.name as city_name

Verknüpfung

Nach dem Befehl ON müssen wir die Felder aus den beiden Tabellen angeben, über die die Verknüpfung hergestellt wird. In unserem Fall sind das das Feld id aus der Tabelle mit den Städten und das Feld city_id aus der Tabelle mit den Benutzern:

ON cities.id=users.city_id

Abfrage

Letztendlich wird die Abfrage, die die Benutzer zusammen mit ihren Städten abruft, folgendermaßen aussehen:

SELECT users.name, cities.name as city_name FROM users LEFT JOIN cities ON cities.id=users.city_id

Praktische Aufgaben

Angenommen, Sie haben eine Tabelle mit Produkten und eine Tabelle mit deren Kategorien. Schreiben Sie eine Abfrage, die die Produktnamen zusammen mit ihren Kategorien abruft.

Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen