Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menyelesaikan Ralat 'Rujukan lajur 'id' adalah samar-samar' SQL?
Menyelesaikan Ralat "Rujukan Lajur Ambiguous" SQL: Kes Lajur 'id' Pendua
Apabila membina SELECT
pertanyaan yang melibatkan berbilang jadual dengan nama lajur biasa (seperti lajur "id" di mana-mana), anda mungkin menghadapi ralat "rujukan lajur 'id' adalah samar-samar" yang digeruni. Ini berlaku kerana SQL tidak tahu lajur "id" jadual yang anda ingin dapatkan.
Penyelesaian adalah mudah: Sentiasa layakkan nama lajur anda dengan alias jadual masing-masing atau nama jadual penuh.
Sebagai contoh, jika pertanyaan anda menyertai v_groups
(disebut sebagai vg
) dan people2v_groups
(dinyatakan sebagai p2vg
), kedua-duanya mengandungi lajur "id", pertanyaan samar-samar:
<code class="language-sql">SELECT (id, name) -- Ambiguous! FROM v_groups vg INNER JOIN people2v_groups p2vg ON vg.id = p2vg.v_group_id WHERE p2vg.people_id = 0;</code>
hendaklah ditulis semula untuk menyatakan secara eksplisit sumber jadual untuk lajur "id":
<code class="language-sql">SELECT (vg.id, name) -- Unambiguous! FROM v_groups vg INNER JOIN people2v_groups p2vg ON vg.id = p2vg.v_group_id WHERE p2vg.people_id = 0;</code>
Dengan menggunakan vg.id
, kami dengan jelas menunjukkan bahawa kami mahukan "id" daripada jadual v_groups
. Ini menghapuskan kekaburan dan memastikan pertanyaan anda dilaksanakan dengan betul.
Ringkasnya: Setiap kali berurusan dengan berbilang jadual berkongsi nama lajur, sentiasa awalan nama lajur anda dengan alias jadual yang sepadan (atau nama jadual penuh) untuk mengelakkan kekaburan dan menjamin hasil pertanyaan yang tepat.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat 'Rujukan lajur 'id' adalah samar-samar' SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!