Rumah >pangkalan data >tutorial mysql >Mengapa klausa MySQL WHERE saya dengan 'user_id' samar-samar?

Mengapa klausa MySQL WHERE saya dengan 'user_id' samar-samar?

Linda Hamilton
Linda Hamiltonasal
2024-11-10 19:45:02654semak imbas

Why is my MySQL WHERE clause with 'user_id' ambiguous?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn