Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menyelesaikan Ralat 'Rujukan Lajur 'id' adalah Samar-samar' dalam SQL?
Menyelesaikan masalah "Rujukan Lajur Ambiguous" dalam Pertanyaan SQL SELECT
Menghadapi ralat "rujukan lajur 'id' adalah samar-samar" dalam pertanyaan SQL anda? Panduan ini menyediakan penyelesaian yang mudah. Ralat timbul apabila pertanyaan anda merujuk nama lajur ('id' dalam kes ini) yang wujud dalam berbilang jadual yang terlibat dalam pertanyaan, menyebabkan pangkalan data tidak pasti lajur 'id' jadual yang anda ingin gunakan.
Pembetulannya mudah: sentiasa layakkan rujukan lajur anda dengan nama jadual atau alias.
Mari kita periksa pertanyaan yang bermasalah:
<code class="language-sql">SELECT (id, name) FROM v_groups vg INNER JOIN people2v_groups p2vg ON vg.id = p2vg.v_group_id WHERE p2vg.people_id = 0;</code>
Perhatikan id
dalam klausa SELECT
. Memandangkan id
berkemungkinan wujud dalam kedua-dua v_groups
dan people2v_groups
, pangkalan data tidak boleh menentukan yang mana satu untuk dipilih.
Penyelesaiannya ialah dengan menyatakan secara jelas jadual lajur id
kepunyaan:
<code class="language-sql">SELECT (vg.id, name) --Specify vg.id FROM v_groups vg INNER JOIN people2v_groups p2vg ON vg.id = p2vg.v_group_id WHERE p2vg.people_id = 0;</code>
Dengan menambahkan vg.
sebelum id
, kami dengan jelas menunjukkan bahawa kami mahukan lajur id
daripada jadual v_groups
(disebut sebagai vg
). Ini menghilangkan kekaburan dan memastikan pertanyaan berjalan dengan betul. Menggunakan alias jadual menjadikan SQL anda lebih mudah dibaca dan diselenggara, terutamanya dalam pertanyaan yang kompleks. Sentiasa layakkan rujukan lajur anda untuk mengelakkan ralat biasa ini.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat 'Rujukan Lajur 'id' adalah Samar-samar' dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!