Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menyelesaikan Rujukan Lajur SQL Samar-samar: Konflik Lajur 'id'?
Mengendalikan Rujukan Lajur SQL Samar-samar: Contoh Lajur "id"
Melaksanakan pertanyaan SQL kadangkala boleh menyebabkan ralat "rujukan lajur samar-samar" yang mengecewakan, terutamanya apabila berurusan dengan lajur "id" biasa. Ini biasanya berlaku apabila pertanyaan anda melibatkan berbilang jadual atau alias yang berkongsi nama lajur yang sama.
Punca yang kerap adalah menyertai jadual dengan nama lajur yang sama. Contohnya:
<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>
Di sini, kedua-dua v_groups
(disebut sebagai vg
) dan people2v_groups
(dinyatakan sebagai p2vg
) mengandungi lajur "id". Pangkalan data tidak dapat menentukan "id" mana yang hendak dipilih, mengakibatkan ralat kekaburan.
Penyelesaian adalah mudah: jelaskan kelayakan nama lajur dengan jadual atau aliasnya. Dalam kes ini, untuk memilih "id" daripada jadual v_groups
:
<code class="language-sql">SELECT (vg.id, name) FROM v_groups vg INNER JOIN people2v_groups p2vg ON vg.id = p2vg.v_group_id WHERE p2vg.people_id = 0;</code>
Spesifikasi yang jelas ini menghapuskan kekaburan dan membolehkan pertanyaan dilaksanakan dengan betul.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Rujukan Lajur SQL Samar-samar: Konflik Lajur 'id'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!