Ambiguous User ID dalam MySQL WHERE Klausa
Apabila melaksanakan pertanyaan MySQL dengan klausa WHERE menggunakan medan 'user_id', anda mungkin menghadapi mesej ralat "user_id in where clause is ambiguous." Ini berlaku kerana pertanyaan tidak dapat menentukan medan 'user_id' yang hendak digunakan memandangkan terdapat berbilang jadual dengan lajur bernama 'user_id'.
Untuk membetulkannya, anda perlu menentukan medan 'user_id' yang hendak digunakan dengan memasukkan nama jadual sebagai awalan. Sebagai contoh, dalam pertanyaan yang diberikan:
SELECT user.*, user_info.* FROM user INNER JOIN user_info ON user.user_id = user_info.user_id WHERE user_id=1
Pertanyaan menggunakan nama medan 'user_id' yang sama dalam kedua-dua keadaan JOIN dan klausa WHERE. Untuk menyelesaikan kekaburan, nyatakan nama jadual sebelum 'user_id' dalam klausa WHERE:
... WHERE user.user_id=1
Ini secara jelas menunjukkan bahawa medan 'user_id' daripada jadual 'user' harus digunakan dalam klausa WHERE.
Menentukan nama jadual menghilangkan kekaburan, membolehkan MySQL melaksanakan pertanyaan dengan betul. Dengan berbuat demikian, anda memastikan bahawa pertanyaan mendapatkan semula data daripada medan dan jadual yang dimaksudkan.
Atas ialah kandungan terperinci Mengapa MySQL Melemparkan Ralat 'ID Pengguna Samar-samar di WHERE Klausa'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!