簡體   English   中英

如何解決mySql SELECT中的歧義錯誤1052?

[英]How to solve the ambiguity error 1052 in mySql SELECT?

我正在制作一個 mySql SELECT:

SELECT name, description, brand, Providers.name, Categories.name, sellingPrice, quantity
FROM Products 
INNER JOIN Providers ON Products.idProvider = Providers.id
INNER JOIN Categories ON Products.idCategory = Categories.id
WHERE category = 'tools';

但我變成了這個錯誤:

Error Code: 1052. Column 'name' in field list is ambiguous

即使我指定了“Table.column”(Providers.name,Categories.name)。

請一些幫助?

您是否嘗試在開始時刪除名稱字段? 試試這個代碼

SELECT description, brand, Providers.name, Categories.name, sellingPrice, quantity
FROM Products 
INNER JOIN Providers ON Products.idProvider = Providers.id
INNER JOIN Categories ON Products.idCategory = Categories.id
WHERE category = 'tools';

同樣在選擇中提供適當的 Table.Column 映射。 如果產品表中有名稱字段,請在選擇中包含 Products.name

每當您連接表時,您可能會在多個表中發現相同的列名。 SQL 引擎不知道選擇哪個。所以為了區分你需要指定正確的映射。 您還可以指定簡單的別名而不是完整的表名稱。

簡單規則:在編寫查詢時限定所有列名。 總是。

如果您給表提供合理的別名,這很容易。 所以你的查詢應該是這樣的:

SELECT p.name, p.description, p.brand, pr.name, c.name, p.sellingPrice, p.quantity
FROM Products p JOIN
     Providers pr
     ON p.idProvider = pr.id JOIN
     Categories c
     ON p.idCategory = c.id
WHERE c.category = 'tools';

我猜測列來自哪些表,因此限定名稱可能不正確(您的問題未提供此信息)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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