Rumah > pangkalan data > tutorial mysql > Mengapa Pertanyaan SQL Saya Gagal dengan Ralat 'Lajur Tidak Wujud' Walaupun Lajur Wujud?

Mengapa Pertanyaan SQL Saya Gagal dengan Ralat 'Lajur Tidak Wujud' Walaupun Lajur Wujud?

Linda Hamilton
Lepaskan: 2025-01-13 08:11:42
asal
121 orang telah melayarinya

Why Does My SQL Query Fail with a

Menyelesaikan masalah ralat pertanyaan SQL "lajur tidak wujud"

Apabila melaksanakan pertanyaan SQL, anda mungkin menghadapi ralat "lajur tidak wujud". Ini amat membingungkan apabila lajur kelihatan wujud dalam takrif jadual.

Contoh adegan

Pertimbangkan pertanyaan berikut:

<code class="language-sql">select sim.id as idsim, 
       num.id as idnum 
from main_sim sim 
  left join main_number num on (FK_Numbers_id=num.id);</code>
Salin selepas log masuk

Pertanyaan ini cuba mendapatkan semula data daripada dua jadual main_sim dan nombor_utama berdasarkan hubungan kunci asing FK_Numbers_id. Walau bagaimanapun, semasa melaksanakan pertanyaan, saya menerima ralat berikut:

<code>ERROR:  column "fk_numbers_id" does not exist</code>
Salin selepas log masuk

Penyelesaian

Selepas menyemak definisi jadual menggunakan arahan d main_sim anda akan melihat bahawa lajur itu wujud, bernama FK_Numbers_id, dan bukan fk_numbers_id yang dinyatakan dalam pertanyaan.

<code class="language-sql">dbMobile=# \d main_sim

...
FK_Numbers_id   | integer               | </code>
Salin selepas log masuk

Penjelasan

Dalam kes ini, nama lajur adalah sensitif huruf besar-besaran kerana definisi jadual menggunakan petikan berganda. Oleh itu, rujukan lajur dalam pertanyaan juga mesti menggunakan petikan berganda untuk memadankan kes tepat nama lajur.

Pertanyaan diperbetulkan

Untuk menyelesaikan isu ini, sila ubah suai pertanyaan seperti berikut:

<code class="language-sql">select sim.id as idsim, 
       num.id as idnum 
from main_sim sim 
  left join main_number num on ("FK_Numbers_id" = num.id);</code>
Salin selepas log masuk

Pertanyaan diperbetulkan ini menggunakan petikan berganda di sekeliling nama lajur dalam klausa LEFT JOIN, memastikan padanan yang betul dengan definisi jadual. Dengan melaraskan rujukan lajur agar sepadan dengan kes tepat nama lajur, pertanyaan kini akan berjaya dilaksanakan.

Atas ialah kandungan terperinci Mengapa Pertanyaan SQL Saya Gagal dengan Ralat 'Lajur Tidak Wujud' Walaupun Lajur Wujud?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan