Heim >Datenbank >MySQL-Tutorial >Wie kann die Mehrdeutigkeit von „user_id' in der MySQL-WHERE-Klausel behoben werden?
Mehrdeutige „user_id“ in der MySQL-WHERE-Klausel
Beim Abfragen einer Datenbank mit mehreren Tabellen, die gemeinsame Spaltennamen haben, ist es wichtig, diese explizit anzugeben Auf welche Tabellenspalte Sie sich in der WHERE-Klausel beziehen. Diese Mehrdeutigkeit entsteht, wenn Tabellen wie „Benutzer“ und „Benutzerinfo“ einen gemeinsamen Spaltennamen haben, z. B. „Benutzer-ID“.
Das Problem
Die folgende Abfrage versucht dies Verknüpfen Sie die Tabellen „user“ und „user_info“, aber es kommt zu dem Fehler „‚user_id‘ in where-Klausel ist mehrdeutig“:
SELECT user.*, user_info.* FROM user INNER JOIN user_info ON user.user_id = user_info.user_id WHERE user_id=1
Die Lösung
Um diese Mehrdeutigkeit aufzulösen, müssen Sie angeben, welche Tabellenspalte „user_id“ Sie mit dem Wert 1 vergleichen. Dies geschieht, indem Sie dem Spaltennamen den Tabellenalias voranstellen:
SELECT user.*, user_info.* FROM user INNER JOIN user_info ON user.user_id = user_info.user_id WHERE user.user_id=1
Durch explizite Angabe von „ user.user_id‘ teilen Sie der Datenbank mit, dass dies die Spalte ist, nach der Sie filtern möchten, und nicht die Spalte ‚user_id‘ aus der Tabelle ‚user_info‘. Dadurch wird die Mehrdeutigkeit beseitigt und die Abfrage kann erfolgreich ausgeführt werden.
Das obige ist der detaillierte Inhalt vonWie kann die Mehrdeutigkeit von „user_id' in der MySQL-WHERE-Klausel behoben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!