字段列表中的列'id'是不明确的 - 推荐系统

时间:2018-05-07 16:15:31

标签: sql ambiguous

我正在尝试列出productID与我的表帐户中的占用ID匹配的产品,并继续收到上述错误。

SELECT productID, productName, productDesc, productImgPath, 
       productPrice, catID, occupationID, Accounts.occupationID  
FROM Products 
JOIN Accounts ON occupationID = Accounts.occupationID 
WHERE occupationID = Accounts.occupationID

3 个答案:

答案 0 :(得分:1)

虽然你没有' id'专栏 - 我认为你只需要完全符合你的陈述;

SELECT productID, productName, productDesc, productImgPath, 
       productPrice, catID, occupationID, Accounts.occupationID  
FROM Products 
JOIN Accounts ON Products.occupationID = Accounts.occupationID 

您不再需要WHERE,因为它与联接

一样
WHERE Products.occupationID = Accounts.occupationID

答案 1 :(得分:0)

这是因为在产品和帐户中,占用ID都不明确 完全符合该领域的资格。

    SELECT productID, productName, productDesc, productImgPath, productPrice, P.catID, P.occupationID, A.occupationID
    FROM Products P JOIN Accounts A ON P.occupationID = A.occupationID

注意:您的WHERE子句是多余的,因为它在连接中处理。

答案 2 :(得分:0)

我的查询中没有找到任何id列,但我建议使用更容易阅读和编写的alise

SELECT p.productID, p.productName, p.productDesc, p.productImgPath, 
       p.productPrice, a.catID, p.occupationID, a.occupationID  
FROM Products p -- use of alise p instead of table_name
INNER JOIN Accounts a ON p.occupationID = a.occupationID 
--WHERE occupationID = Accounts.occupationID (redundant where clause)

请查看列选择并改用精确或正确的表格。