【发布时间】:2014-09-05 04:48:49
【问题描述】:
SELECT
cat.CategoryID as CategoryID,
count(p.ProductID) as CountProducts
FROM
Category as cat
LEFT JOIN Products as p on p.CategoryID IN
(SELECT CategoryID FROM Category as cd
WHERE cd.ParrentCategoryID = '876')
WHERE
CategoryID = '876'
ORDER by Name
我们收到错误 - “where 子句中的列 'CategoryID' 不明确”。
请告诉我如何正确?
【问题讨论】:
-
CategoryID 在两个表中。用表的名称来命名标识符列并不是一个好主意 - 只是
id是行业标准,因为它效果最好。 -
IN (subquery)谓词在ON子句中的使用非常奇怪。通常,ON子句中的谓词引用 FROM 子句中表的列。 (我很难理解所需的结果集实际上是什么。)