2014-04-19 64 views
-1

不確定問題的標題是否正確。如何從sql單連接中獲取多個列名?

我有兩個表

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

它不是c.categoryname,我假設這是在mssql中? –

回答

2

上表本身(所以我們沒有失去任何行如果INNER JOIN使用且沒有指定ParentCategoryID)與Left outer join嘗試。

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 
1

試試這個:

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 
0

試試這個:

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 
相關問題