Mehrdeutige Spalte „user_id“ in der MySQL-WHERE-Klausel
Beim Ausführen der folgenden MySQL-Abfrage kann ein Fehler auftreten, der darauf hinweist, dass die Spalte „user_id '-Spalte in der WHERE-Klausel ist nicht eindeutig:
SELECT user.*, user_info.* FROM user INNER JOIN user_info ON user.user_id = user_info.user_id WHERE user_id=1
Grund für den Fehler:
Dieser Fehler tritt auf, weil sowohl die Tabellen „user“ als auch „user_info“ Folgendes haben eine Spalte mit dem Namen „user_id“. Ohne Angabe der „user_id“ der Tabelle, die in der WHERE-Klausel verwendet werden soll, kann MySQL nicht bestimmen, auf welche Spalte verwiesen werden soll.
Lösung:
Um diese Mehrdeutigkeit aufzulösen, müssen Sie Sie müssen explizit angeben, welche Spalte verwendet werden soll, indem Sie den Tabellennamen vor der Spalte „user_id“ 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 Voranstellung von „user“. Vor „user_id“ geben Sie an, dass die Spalte „user_id“ aus der Tabelle „user“ in der WHERE-Klausel verwendet werden soll. Dadurch wird die Mehrdeutigkeit beseitigt und MySQL kann die Abfrage korrekt ausführen.
Das obige ist der detaillierte Inhalt vonWarum ist meine MySQL-WHERE-Klausel mit „user_id' nicht eindeutig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!