Dalam pertanyaan SQL, menghadapi ralat nama lajur samar-samar biasanya berlaku apabila memilih data daripada berbilang jadual menggunakan JOIN dan mempunyai sekurang-kurangnya satu lajur dengan nama yang sama dalam jadual yang berbeza. Ralat ini timbul apabila Pelayan SQL tidak dapat menentukan dari jadual mana untuk mendapatkan semula data untuk lajur samar-samar.
Untuk menyelesaikan kekaburan ini, nyatakan nama jadual secara eksplisit sebelum nama lajur dalam pertanyaan. Contohnya, dalam pertanyaan anda, anda mempunyai dua jadual, Invois dan InvoiceLineItems, kedua-duanya mempunyai lajur bernama InvoiceID. Untuk menyahkekaburan, gunakan Invois.InvoiceID untuk merujuk secara khusus kepada lajur Invois dalam jadual Invois.
Berikut ialah versi diubah suai pertanyaan anda yang termasuk nama jadual untuk lajur samar-samar:
SELECT VendorName, Invoices.InvoiceID, InvoiceSequence, InvoiceLineItemAmount FROM Vendors JOIN Invoices ON (Vendors.VendorID = Invoices.VendorID) JOIN InvoiceLineItems ON (Invoices.InvoiceID = InvoiceLineItems.InvoiceID) WHERE Invoices.InvoiceID IN (SELECT InvoiceSequence FROM InvoiceLineItems WHERE InvoiceSequence > 1) ORDER BY VendorName, Invoices.InvoiceID, InvoiceSequence, InvoiceLineItemAmount
Dengan menyatakan nama jadual, anda membantu SQL Server mengenal pasti lajur yang betul untuk mendapatkan data daripada, menghapuskan kekaburan dan membenarkan pertanyaan untuk dilaksanakan dengan jayanya.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat Nama Lajur Samar-samar dalam Pertanyaan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!