Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menyelesaikan 'Lajur 'id' dalam senarai medan adalah samar-samar' Ralat SQL?
Menyelesaikan Kekaburan SQL: Masalah Lajur 'id'
Menerima ralat "1052: Lajur 'id' dalam senarai medan adalah samar-samar" dalam pertanyaan SQL anda? Ini berlaku apabila penyataan SELECT
anda termasuk lajur id
hadir dalam berbilang jadual bercantum. Pangkalan data tidak dapat menentukan id
yang anda ingin dapatkan semula.
Penyelesaian adalah untuk menentukan sumber jadual bagi setiap lajur id
. Ini boleh dilakukan menggunakan sama ada nama jadual penuh atau, lebih cekap, alias jadual.
Menggunakan Nama Jadual Penuh:
Pendekatan ini menyatakan secara eksplisit asal jadual setiap id
:
<code class="language-sql">SELECT tbl_names.id, tbl_section.id, name, section FROM tbl_names JOIN tbl_section ON tbl_section.id = tbl_names.id</code>
Menggunakan Alias Jadual (Disyorkan):
Alias jadual memendekkan pertanyaan dan meningkatkan kebolehbacaan:
<code class="language-sql">SELECT n.id, s.id, n.name, s.section FROM tbl_names AS n JOIN tbl_section AS s ON s.id = n.id</code>
Kedua-dua kaedah mencapai hasil yang sama, tetapi alias biasanya lebih disukai kerana keringkasannya.
Memahami Sintaks JOIN: ANSI-92 lwn. ANSI-89
Contoh di atas menggunakan sintaks ANSI-92 JOIN
. Walaupun fungsinya serupa dengan sintaks ANSI-89 yang lebih lama untuk INNER JOIN
s ringkas, ANSI-92 lebih unggul untuk pengendalian OUTER JOIN
s yang lebih jelas (KIRI, KANAN, PENUH). Untuk kebolehselenggaraan dan untuk memanfaatkan kuasa penuh JOIN
operasi, ANSI-92 ialah standard yang disyorkan.
Dengan melayakkan nama lajur anda dengan betul dan menggunakan sintaks ANSI-92 JOIN
moden, anda akan menghapuskan kekaburan dan menulis pertanyaan SQL yang lebih cekap dan boleh dibaca.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan 'Lajur 'id' dalam senarai medan adalah samar-samar' Ralat SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!