SELECT * FROM Products_Joined, Products
WHERE p.ProductManufacturer = 'Sony'
ORDER BY p.ProductCode
我一直收到错误多部件标识符p.ProductManufacturer无法绑定
我试过了:
Order By
PRODUCTS
表添加到FROM
我有什么遗失的吗?
答案 0 :(得分:3)
您应该使用:
SELECT p.*, pj.*
FROM dbo.Products p
INNER JOIN dbo.ProductsJoined pj ON ..... <== add your missing JOIN condition here
WHERE p.ProductManufacturer = 'Sony'
ORDER BY p.ProductCode
首先:永远不要在生产代码中使用SELECT *
。
其次:使用正确的ANSI JOIN语法(INNER JOIN..
)清楚地显示您要加入的内容,以及什么加入条件(缺少哪个在你的情况下 - 你在这里生产笛卡尔产品.....)
第三:如果你使用像p.
这样的表别名 - 你也需要定义它们!
答案 1 :(得分:1)
你没有p对象。您需要为其中一个表添加别名。
SELECT * FROM Products_Joined, Products AS p
WHERE p.ProductManufacturer = 'Sony'
ORDER BY p.ProductCode
这将解决您的问题,但是您的桌子上应该有JOIN
,否则您正在执行CROSS JOIN
,这通常不是首选。它的外观如下所示。
SELECT *
FROM Products_Joined
JOIN Products AS p
ON Products_Joined.ProductsID = p.ProductsID
--This join is a guess on what the common column is between these two tables
--Change as necessary
WHERE p.ProductManufacturer = 'Sony'
ORDER BY p.ProductCode
根据您的评论进行更新
如果您甚至使用Products.ProductManufacturer收到错误,那么您可能缺少Products表中的ProductManufacturer列。我会检查您的架构并验证列是否存在。