Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menyelesaikan Rujukan Lajur SQL Samar-samar: Konflik Lajur 'id'?

Bagaimana untuk Menyelesaikan Rujukan Lajur SQL Samar-samar: Konflik Lajur 'id'?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-18 07:52:08653semak imbas

How to Resolve Ambiguous SQL Column References:  The

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!

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