Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menyelesaikan 'Lajur 'id' dalam senarai medan adalah samar-samar' dalam Pertanyaan MySQL?

Bagaimana untuk Menyelesaikan 'Lajur 'id' dalam senarai medan adalah samar-samar' dalam Pertanyaan MySQL?

Susan Sarandon
Lepaskan: 2025-01-19 18:41:11
asal
847 orang telah melayarinya

How to Resolve

Mengatasi Lajur 'id' Samar-samar dalam Pertanyaan MySQL

Bekerja dengan berbilang jadual berkongsi nama lajur (seperti "id") selalunya membawa kepada ralat "Lajur 'id' dalam senarai medan adalah samar-samar". Ini timbul apabila pertanyaan anda memilih lajur 'id' tanpa menyatakan jadual sumbernya.

MySQL menawarkan dua penyelesaian yang jelas:

1. Penamaan Jadual Eksplisit atau Aliasing

Awalan lajur 'id' dengan nama jadualnya untuk pengenalan yang tidak jelas:

<code class="language-sql">SELECT tbl_names.id, tbl_section.id, name, section
FROM tbl_names, tbl_section
WHERE tbl_names.id = tbl_section.id;</code>
Salin selepas log masuk

2. Kaedah Pilihan: ANSI-92 JOIN Sintaks

Pendekatan ini menggunakan alias untuk kod yang lebih bersih dan mudah dibaca:

<code class="language-sql">SELECT n.id, s.id, n.name, s.section
FROM tbl_names n
JOIN tbl_section s ON s.id = n.id;</code>
Salin selepas log masuk

Di sini, 'n' dan 's' ialah alias untuk tbl_names dan tbl_section, masing-masing. Ini menghapuskan kekaburan.

Amalan Terbaik: Terima Alias

Menggunakan alias (kaedah 2) amat disyorkan. Ia menghasilkan pertanyaan yang lebih padat dan mudah difahami, terutamanya apabila menggunakan jadual yang sama beberapa kali.

Mengapa Memilih ANSI-92 JOIN?

Walaupun MySQL masih menyokong sintaks ANSI-89 JOIN yang lebih lama (digunakan secara tersirat dalam senarai jadual yang dipisahkan koma), ANSI-92 adalah lebih baik. Ia menawarkan sokongan penting untuk gabungan OUTER (KIRI, KANAN, PENUH), fungsi yang tiada dalam ANSI-89. Walaupun MySQL mengekalkan keserasian ke belakang dengan ANSI-89, penggunaan standard ANSI-92 moden ialah amalan terbaik untuk kejelasan dan kefungsian yang dipertingkatkan.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan 'Lajur 'id' dalam senarai medan adalah samar-samar' dalam Pertanyaan MySQL?. 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