Wie kann ich das Problem beheben, das ich aus dem Code unten bekomme, der 'user_id' in where clause is ambiguous
angibt. Vielen Dank für die Hilfe im Voraus.
Hier ist die MySQL-Tabelle.
SELECT user.*, user_info.*
FROM user
INNER JOIN user_info ON user.user_id = user_info.user_id
WHERE user_id='$user_id'
Sie müssen lediglich angeben, welcher user_id
verwendet werden soll, da sowohl die user_info
- als auch die user
-Tabelle ein Feld mit dem Namen user_id
haben:
... WHERE user.user_id='$user_id'
SQL würde diese Mehrdeutigkeit nicht tolerieren, da beide Felder für völlig unterschiedliche Daten stehen können.
Versuche dies.
SELECT u.user_id, u.user_fudge, ui.foo, ui.bar
FROM user AS u
INNER JOIN user_info AS ui
ON ui.user_id = u.user_id
WHERE u.user_id = '$user_id';
Sie sollten den Aliasnamen Ihrer Spalte angeben und user_id wie zuweisen
SELECT user.*, user_info.*
FROM user as u
INNER JOIN user_info as ui ON u.user_id = ui.user_id
WHERE u.user_id='$user_id'
Die Lösung besteht darin, jede Spalte explizit überall auszuwählen. Verwenden Sie in Ihrer Auswahlliste nicht user. * Und user_info. *, Entweder:
SELECT u.user_id, u.user_fudge, ui.foo, ui.bar
FROM user u
INNER JOIN user_info ui
ON ui.user_id = u.user_id
WHERE u.user_id = '$user_id';