Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Menyelesaikan Kekaburan 'user_id' dalam Klausa MySQL WHERE?

Bagaimana untuk Menyelesaikan Kekaburan 'user_id' dalam Klausa MySQL WHERE?

Barbara Streisand
Barbara Streisandasal
2024-11-11 06:05:03519semak imbas

How to Resolve

Kabur 'user_id' dalam MySQL WHERE Klausa

Apabila menanyakan pangkalan data dengan berbilang jadual yang berkongsi nama lajur biasa, adalah penting untuk menyatakan secara eksplisit lajur jadual manakah yang anda rujuk dalam klausa WHERE. Kekaburan ini timbul apabila jadual seperti 'pengguna' dan 'info_pengguna' mempunyai nama lajur yang dikongsi, seperti 'id_pengguna'.

Masalahnya

Pertanyaan di bawah cuba untuk sertai jadual 'pengguna' dan 'info_pengguna', tetapi ia menghasilkan ralat "'user_id' di mana klausa tidak jelas":

SELECT user.*, user_info.*
FROM user
INNER JOIN user_info ON user.user_id = user_info.user_id
WHERE user_id=1

Penyelesaian

Untuk menyelesaikan kekaburan ini, anda mesti menentukan lajur 'user_id' jadual mana yang anda bandingkan dengan nilai 1. Ini dilakukan dengan meletakkan awalan nama lajur dengan alias jadual:

SELECT user.*, user_info.*
FROM user
INNER JOIN user_info ON user.user_id = user_info.user_id
WHERE user.user_id=1

Dengan menyatakan secara jelas ' user.user_id', anda memberitahu pangkalan data bahawa ini adalah lajur yang anda ingin tapis, bukan lajur 'user_id' daripada jadual 'user_info'. Ini menghapuskan kekaburan dan membenarkan pertanyaan untuk dilaksanakan dengan jayanya.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Kekaburan 'user_id' dalam Klausa MySQL WHERE?. 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