2014-09-25 67 views
1

我有以下查询,因为我需要它,其工作原理,但我也想在另一列这将需要添加自定义的ParentCategoryID的名字,因为是ParentCategory名字没有列。我能得到的唯一方法是引用从t.ParenCategoryID中检索到的CategoryID。 CategoryID和ParentCategoryID位于同一个表中。这可以完成一个子查询吗?SQL自定义列

SELECT c.ContentID 
    ,c.Title 
    ,t.CategoryID 
    ,t.Name 
    ,t.ParentCategoryID 
FROM Content c 
INNER JOIN ContentCategory g ON c.ContentID = g.ContentID 
RIGHT JOIN Category t ON g.CategoryID = t.CategoryID 
ORDER BY g.CategoryID 

在此先感谢。

回答

3
SELECT c.ContentID 
     ,c.Title 
     ,t.CategoryID 
     ,t.Name 
     ,t.ParentCategoryID 
     ,tc.Name AS ParentCategoryName 
FROM Content c 
     INNER JOIN ContentCategory g 
      ON c.ContentID = g.ContentID 
     RIGHT JOIN Category t 
      ON g.CategoryID = t.CategoryID 
     LEFT JOIN Category tc 
      ON t.CategoryID = tc.ParentCategoryID 
ORDER BY g.CategoryID 
+1

看到INNER ... RIGHT ... LEFT很迷惑。 – 2014-09-25 15:00:58

+0

谢谢。父类别名称的名称结果不匹配,但我认为这是我最初查询的副产品。我做了一个类似的查询使用不同的表,它工作正常。 – 2014-09-25 16:53:20