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