Chúng tôi gặp phải lỗi này khi chọn dữ liệu từ nhiều hơn một bảng bằng cách kết hợp các bảng và ít nhất một trong các cột đã chọn (nó cũng sẽ xảy ra khi sử dụng * để chọn tất cả các cột) tồn tại cùng tên trong nhiều bảng (các bảng đã chọn / đã tham gia của chúng tôi). Trong trường hợp đó, chúng tôi phải xác định bảng chúng tôi đang chọn cột nào.
Sau đây là một ví dụ về triển khai giải pháp của khái niệm được giải thích ở trên
Tôi nghĩ rằng bạn chỉ có sự mơ hồ trong InvoiceID
tồn tại cả trong InvoiceLineItems
và Invoices
Các lĩnh vực khác có vẻ khác biệt. Vì vậy, hãy thử Điều này
Tôi chỉ thay InvoiceID bằng Invoices.InvoiceID
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
Bạn có thể sử dụng tablename.columnnae cho tất cả các cột (trong lựa chọn, ở đâu, nhóm theo và sắp xếp theo thứ tự) mà không cần sử dụng bất kỳ bí danh nào. Tuy nhiên, bạn có thể sử dụng bí danh theo hướng dẫn của các câu trả lời khác