Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menyelesaikan Ralat 'Rujukan Lajur 'id' adalah Samar-samar' dalam SQL?

Bagaimana untuk Menyelesaikan Ralat 'Rujukan Lajur 'id' adalah Samar-samar' dalam SQL?

DDD
Lepaskan: 2025-01-18 07:42:07
asal
883 orang telah melayarinya

How to Resolve the

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan