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
879 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:

SELECT tbl_names.id, tbl_section.id, name, section
FROM tbl_names, tbl_section
WHERE tbl_names.id = tbl_section.id;
Salin selepas log masuk

2. Kaedah Pilihan: ANSI-92 JOIN Sintaks

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

SELECT n.id, s.id, n.name, s.section
FROM tbl_names n
JOIN tbl_section s ON s.id = n.id;
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!

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