Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich Mehrdeutigkeiten beim Abrufen von Ergebnissen mit überlappenden Spaltennamen in SQL vermeiden?
Abruf von Ergebnissen mit mehrdeutigen Spaltennamen
Beim Abrufen von Ergebnissen aus einer Datenbank, die mehrere Tabellen mit überlappenden Spaltennamen enthält, kann es zu Mehrdeutigkeiten kommen beim Zugriff auf die gewünschten Werte. In diesem Beispiel stoßen wir auf zwei Tabellen: NEWS und USERS, die beide eine Spalte „id“ haben.
Problembeschreibung
Um die News-ID und die Benutzer-ID abzurufen, Wir führen die folgende SQL-Abfrage aus:
SELECT * FROM news JOIN users ON news.user = user.id
Allerdings beim Zugriff auf die Ergebnisse in PHP unter Verwendung eines assoziativen Arrays und der Syntax $row['column-name'] stehen wir vor der Herausforderung, die spezifischen ID-Spalten zu identifizieren.
Lösung
Um diese Mehrdeutigkeit zu beseitigen, können wir Aliase zuweisen die ausgewählten Spalten. Mithilfe dieser Aliase können wir explizit auf die gewünschte Spalte aus der spezifischen Tabelle verweisen.
Die geänderte SQL-Abfrage mit Aliasen:
$query = 'SELECT news.id AS newsId, user.id AS userId, [OTHER FIELDS HERE] FROM news JOIN users ON news.user = user.id'
Jetzt können wir beim Abrufen der Ergebnisse in PHP verwenden die Aliase für den Zugriff auf die Spalten, zum Beispiel:
$newsId = $row['newsId']; $userId = $row['userId'];
Das obige ist der detaillierte Inhalt vonWie kann ich Mehrdeutigkeiten beim Abrufen von Ergebnissen mit überlappenden Spaltennamen in SQL vermeiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!