Menghadapi ralat "Nama tidak dikenali: pekerja" dalam pertanyaan SQL anda? Isu biasa ini sering berpunca daripada pengawasan mudah: alias jadual yang hilang. Jom terokai masalah dan penyelesaiannya.
Mesej ralat menunjukkan pangkalan data tidak dapat mencari jadual employees
, walaupun anda percaya ia ditakrifkan dengan betul. Punca utama biasanya terletak pada cara anda merujuk jadual dalam pertanyaan anda, terutamanya apabila menggunakan gabungan.
Pertimbangkan pertanyaan bermasalah ini:
<code class="language-sql">SELECT employees.name AS employee_name, employees.role AS employee_role, departments.name AS department_name FROM `strange-calling-318804.employee_data.Employees` JOIN `strange-calling-318804.employee_data.departments` ON employees.department_id = departments.department_id</code>
Walaupun keadaan JOIN
menyatakan dengan betul hubungan antara employees
dan departments
, enjin SQL tidak secara automatik mengecam employees
sebagai alias jadual dalam pernyataan SELECT
kerana ia tidak ditakrifkan secara eksplisit sebagai satu .
Penyelesaian? Tambah alias jadual! Inilah pertanyaan yang diperbetulkan:
<code class="language-sql">SELECT e.name AS employee_name, e.role AS employee_role, d.name AS department_name FROM `strange-calling-318804.employee_data.Employees` as e JOIN `strange-calling-318804.employee_data.departments` as d ON e.department_id = d.department_id</code>
Dengan menggunakan as e
dan as d
, kami mencipta alias ringkas untuk nama jadual yang layak sepenuhnya. Ini menjelaskan jadual yang dimiliki setiap lajur, menyelesaikan kekaburan dan menghalang ralat "Nama tidak dikenali". Pertanyaan kini akan berjaya dilaksanakan. Ingat, menggunakan alias yang jelas ialah amalan terbaik untuk kebolehbacaan dan mengelakkan ralat sedemikian, terutamanya apabila menangani pertanyaan rumit yang melibatkan berbilang gabungan.
Atas ialah kandungan terperinci Mengapa Pertanyaan SQL Saya Mengembalikan 'Nama tidak dikenali: pekerja'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!