[英]Nested Category table with Category and SubCategory
伙计们
我有一个带有CategoryID(主键),ParentID(int不为null)和Category(nvarchar不为null)的Category表。
我正在尝试在此表中插入和检索ID为Category CategoryID的类别以及ID为ParentID的SubCategories。
我一直在整个周末都没有运气,希望您能为我提供帮助。 我正在使用MSSQL 2008。
表结构应如下所示:
-Category1
SubCategory1
SubCategory2
...
-Category2
SubCategory2
SubCategory2
...
任何帮助将不胜感激
您可以使用递归公用表表达式:
WITH cteTable(madeUpColA, madeUpColB, Etc) as
(
-- this select statement with the union all is what does the recursive query
SELECT aCol as madeUpColA, bCol as madeUpColB, Etc
from dbo.someTable
UNION ALL
SELECT aCol as madeUpColA, bCol as madeUpColB, Etc
FROM dbo.someTable st
INNER JOIN cteTable as c -- inner join on relationship
ON st.aCol = c.madeUpColA
)
-- this select statement is what retrieves the data from the above query
SELECT madeUpColA, madeUpColB, Etc
FROM cteTable
-- add your other criteria here
您可以对WITH
语句使用MSDN文档来专门化查询
您只是在寻找简单的自我加入吗? 如果是这样,这应该起作用:
select parent.category, subcat.category as subcategory
from Category subcat join
Category parent
on subscat.parentid = parent.categoryid
还是您需要遍历整个父母链? 如果是这样,则递归CTE是更好的方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.