[英]Inner join - SQL Server
我使用了Northwind數據庫並使用以下查詢進行測試:
SELECT *
FROM products
JOIN suppliers ON suppliers.supplierID = products.supplierID
然后我收到一條紅色消息:
訊息4104,第16級,狀態1,第1行
無法綁定多部分標識符“ products.supplierID”。
誰能闡明一些想法? 非常感謝,
SELECT suppliers.supplierID,products.supplierID
FROM products
JOIN suppliers ON suppliers.supplierID = products.supplierID
您必須明確說明要在結果中顯示的供應商編號。.在選擇語句中將沖突列(強制性)放入
基於此錯誤和您的查詢,我唯一的猜測是在Products表中沒有SupplierId。 我將首先檢查架構。
我剛剛運行了nortwind db腳本並運行了查詢,它對我來說運行良好。
SELECT *
FROM products
INNER JOIN suppliers ON suppliers.supplierID = products.supplierID
看一下產品表,其中有vendorId嗎? 如果是這樣,請確保對正確的數據庫運行查詢。
您可以運行以下查詢,並且運行成功嗎? 第三個查詢本質上是另一種方式的聯接。
select SupplierID from Suppliers
go
select SupplierID from Products
go
select * from Products p , Suppliers s
where p.SupplierID = s.SupplierID
您的代碼正在通過“ select *”選擇列表中的列而產生歧義,因為沒有從表中選擇兩個表,因為from子句之后使用了兩個表。做一件事別名表並在表中使用別名列名選擇列表而不是簡單*
例如。
select a.* from test a inner join xyz b on a.id=b.id
代替SELECT *
編寫要從兩個表中選擇的適當列
像SELECT suppliers.supplierID,suppliers.name..etc
兩個表都包含了providerID,這就是錯誤發生的原因。
檢查數據庫的排序規則設置,如果區分大小寫,請檢查是否正在使用區分大小寫的數據對象名稱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.