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

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

DDD
Lepaskan: 2025-01-18 07:47:07
asal
289 orang telah melayarinya

How to Resolve

Rujukan lajur samar-samar dalam pernyataan SQL SELECT

Dalam SQL, kekaburan berlaku apabila berbilang lajur berkongsi nama yang sama dalam jadual berbeza yang terlibat dalam pertanyaan. Apabila lajur ini dipilih, lajur yang dirujuk oleh pertanyaan adalah samar-samar, yang membawa kepada ralat seperti "Rujukan lajur samar-samar."

Pernyataan Masalah

Apabila cuba melaksanakan pernyataan SELECT berikut, anda akan menghadapi masalah seperti itu:

<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

Pertanyaan ini cuba mendapatkan semula lajur id dan nama daripada jadual v_groups. Walau bagaimanapun, mesej ralat dikembalikan: "ID rujukan lajur adalah samar-samar".

Punca kekaburan

Kekaburan timbul kerana kedua-dua jadual v_groups dan people2v_groups mengandungi lajur bernama id. Tanpa menyatakan nama jadual atau alias, pertanyaan tidak boleh menentukan lajur id yang harus diambil.

Penyelesaian

Untuk menyelesaikan kekaburan, nyatakan secara eksplisit nama jadual atau alias sebelum nama lajur dalam bahagian PILIH pertanyaan. Ini menjelaskan kepada pangkalan data lajur id yang harus digunakan.

Pertanyaan diperbetulkan:

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

Dengan menambahkan vg. sebelum id, pertanyaan merujuk secara eksplisit lajur id dalam jadual v_groups, dengan itu menghapuskan kekaburan dan membenarkan pertanyaan dilaksanakan dengan jayanya.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat 'Rujukan Lajur adalah Samar-samar' dalam Pernyataan SQL SELECT?. 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