尝试从多个数据库访问具有重复名称的列时,会出现 SQL 查询中的错误消息“列名不明确”加入表。要解决这种歧义,指定从中选择列的表至关重要。
在提供的查询中,InvoiceID 列发生错误,该列同时存在于 Invoices 和 InvoiceLineItems 表中。要解决此问题,请按如下方式修改查询:
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
通过在“InvoiceID”之前指定“Invoices”表前缀,查询明确指示应从 Invoices 表中检索该列。这解决了歧义,并允许 SQL Server Management Studio (SSMS) 正确检索和显示 VendorID 列。
请记住为所有不明确的列指定表前缀,以避免在从多个表查询数据时出现此错误。
以上是如何解决 SQL 查询中的'列名不明确”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!