簡體   English   中英

內部聯接-SQL Server

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM