Rumah >pangkalan data >tutorial mysql >Mengapa klausa MySQL WHERE saya dengan 'user_id' samar-samar?
Lajur 'user_id' yang tidak jelas dalam Klausa MySQL WHERE
Apabila melaksanakan pertanyaan MySQL berikut, anda mungkin menghadapi ralat yang menunjukkan bahawa 'user_id ' lajur dalam klausa WHERE adalah samar-samar:
SELECT user.*, user_info.* FROM user INNER JOIN user_info ON user.user_id = user_info.user_id WHERE user_id=1
Sebab Ralat:
Ralat ini berlaku kerana kedua-dua jadual 'pengguna' dan 'info_pengguna' mempunyai lajur bernama 'user_id'. Tanpa menyatakan 'user_id' jadual mana yang hendak digunakan dalam klausa WHERE, MySQL tidak dapat menentukan lajur yang hendak dirujuk.
Penyelesaian:
Untuk menyelesaikan kekaburan ini, anda perlu menyatakan secara eksplisit lajur yang hendak digunakan dengan menambah nama jadual sebelum lajur 'user_id':
SELECT user.*, user_info.* FROM user INNER JOIN user_info ON user.user_id = user_info.user_id WHERE user.user_id=1
Dengan menambah 'pengguna'. sebelum 'user_id,' anda menyatakan bahawa lajur 'user_id' daripada jadual 'user' harus digunakan dalam klausa WHERE. Ini menghapuskan kekaburan dan membolehkan MySQL melaksanakan pertanyaan dengan betul.
Atas ialah kandungan terperinci Mengapa klausa MySQL WHERE saya dengan 'user_id' samar-samar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!