जब हम एक से अधिक तालिकाओं . से डेटा का चयन कर रहे होते हैं तो हमें इस त्रुटि का सामना करना पड़ता है तालिकाओं और चयनित स्तंभों में से कम से कम एक . से जुड़कर (यह तब भी होगा जब सभी स्तंभों का चयन करने के लिए * का उपयोग करें) एक से अधिक तालिकाओं में समान नाम के साथ मौजूद हों (हमारी चयनित/शामिल हुई टेबल)। उस स्थिति में हमें यह निर्दिष्ट करना होगा कि हम किस तालिका से कॉलम का चयन कर रहे हैं।
निम्नलिखित ऊपर वर्णित अवधारणा का एक उदाहरण समाधान कार्यान्वयन है
मुझे लगता है कि आपके पास केवल InvoiceID
. में अस्पष्टता है जो दोनों InvoiceLineItems
. में मौजूद है और Invoices
अन्य क्षेत्र अलग लगते हैं। तो इसे आजमाएं
मैं अभी चालान आईडी को चालान से बदल देता हूं। चालान आईडी
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
आप किसी भी उपनाम का उपयोग किए बिना सभी कॉलम (चयन में, जहां, समूह द्वारा और क्रम में) के लिए tablename.columnnae का उपयोग कर सकते हैं। हालांकि आप अन्य उत्तरों द्वारा निर्देशित एक उपनाम का उपयोग कर सकते हैं