Ralat SQL: "Lajur Tidak Diketahui dalam Klausa Dimana"
Apabila melaksanakan pertanyaan SQL yang serupa dengan:
<code class="language-sql">SELECT u_name AS user_name FROM users WHERE user_name = "john";</code>
Anda mungkin menghadapi ralat "Lajur Tidak Diketahui 'nama_pengguna' di mana klausa". Ralat ini adalah kerana susunan penghuraian SQL adalah dari kanan ke kiri.
Secara khusus, klausa WHERE
dihuraikan sebelum klausa SELECT
. Apabila klausa WHERE
dihuraikan, alias "nama_pengguna" belum lagi digunakan pada lajur "u_name". Oleh itu, pangkalan data mentafsir "nama_pengguna" sebagai lajur yang tidak diketahui dan menimbulkan ralat.
Untuk menyelesaikan masalah ini, anda boleh menggunakan nama lajur asal "u_name" dalam klausa WHERE
:
<code class="language-sql">SELECT u_name AS user_name FROM users WHERE u_name = "john";</code>
Sebagai alternatif, anda boleh menggunakan subkueri untuk alias lajur sebelum menggunakan alias dalam klausa WHERE
:
<code class="language-sql">SELECT user_name FROM (SELECT u_name AS user_name FROM users) AS subquery WHERE user_name = "john";</code>
Atas ialah kandungan terperinci Mengapa 'Lajur Tidak Diketahui dalam Klausa Di Mana' Berlaku Apabila Menggunakan Alias dalam Pertanyaan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!