Rumah > pangkalan data > tutorial mysql > Mengapa PostgreSQL LEFT JOIN Saya Gagal dengan Ralat 'Lajur Tidak Wujud'?

Mengapa PostgreSQL LEFT JOIN Saya Gagal dengan Ralat 'Lajur Tidak Wujud'?

Patricia Arquette
Lepaskan: 2025-01-13 09:08:43
asal
310 orang telah melayarinya

Why Does My PostgreSQL LEFT JOIN Fail with a

Menyelesaikan Masalah PostgreSQL LEFT JOIN Ralat: Sensitiviti Kes dan Nama Lajur

Melaksanakan pertanyaan SQL dengan LEFT JOIN kadangkala boleh mengakibatkan ralat "lajur ... tidak wujud" yang mengecewakan. Ini selalunya berpunca daripada ketidakkonsistenan dalam cara nama lajur dirujuk.

Contoh ini menyerlahkan perangkap biasa: kepekaan huruf besar dalam PostgreSQL. Jadual main_sim mengandungi lajur kunci asing bernama FK_Numbers_id. Walaupun definisi jadual (d main_sim) mengesahkan kewujudannya, pertanyaan gagal kerana nama lajur tidak konsisten dalam huruf besar. Pertanyaan menggunakan FK_Numbers_id (huruf besar), manakala pangkalan data menyimpannya sebagai fk_numbers_id (huruf kecil).

Sensitiviti kes PostgreSQL adalah penting di sini. Jika jadual dibuat dengan nama lajur petikan dua kali (seperti yang disyorkan dalam dokumentasi), semua nama lajur menjadi sensitif huruf besar-besaran. Ini bermakna anda mesti menggunakan kes yang tepat – termasuk petikan berganda – dalam pertanyaan anda.

Penyelesaian:

Pertanyaan yang diperbetulkan menggunakan petikan berganda untuk menyatakan secara eksplisit kes nama lajur:

<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

Pengubahsuaian ini memastikan lajur yang betul dirujuk, menyelesaikan ralat "lajur tidak wujud" dan membenarkan LEFT JOIN untuk dilaksanakan dengan jayanya. Ingat, selongsong yang konsisten dan tepat adalah penting apabila bekerja dengan PostgreSQL, terutamanya apabila berurusan dengan pengecam dua petikan.

Atas ialah kandungan terperinci Mengapa PostgreSQL LEFT JOIN Saya Gagal dengan Ralat 'Lajur Tidak 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