不确定问题的标题是对还是错。
我有两张桌子
Category: CategoryID,CategoryName ,ParentCategoryID
ref_Product_Category: CategoryID, ProductID
我写过这样的查询,
SELECT R.productID,
C.ParentCategoryID,
C.categoryName
FROM Category C
INNER JOIN ref_Product_Category R
ON C.categoryID = R.categoryID
所以它在结果中返回了4列,但现在我想要另一个包含的列 ParentCategoryID的类别名称。 我不知道该怎么做。类别表是自引用表。
答案 0 :(得分:2)
尝试使用表格本身Left outer join
(因此,如果使用INNER JOIN
并且未指定ParentCategoryID
,我们不会丢失任何行:
SELECT R.productID,
C.ParentCategoryID,
C.categoryName,
ISNULL(C1.CategoryName, '') as ParentCategoryName
FROM Category C
INNER JOIN ref_Product_Category R
ON C.categoryID = R.categoryID
LEFT OUTER JOIN Category C1 on Category.ParentCategoryID = C1.CategoryID
答案 1 :(得分:1)
试试这个:
SELECT R.productID,
C.ParentCategoryID,
C.categoryName,
C.CategoryName,
CP.CategoryName as ParentCategory
FROM Category C
INNER JOIN ref_Product_Category R ON C.categoryID = R.categoryID
INNER JOIN Category CP ON Cp.CategoryID=C.ParentCategoryID
答案 2 :(得分:0)
试试这个。
SELECT R.productID,
C.ParentCategoryID,
C.categoryName, p.ParentCategoryName
FROM Category C
INNER JOIN ref_Product_Category R
ON C.categoryID = R.categoryID INNER JOIN ParentCategory p on p.ParentCategoryID=c.ParentCategoryID