【发布时间】:2012-02-29 23:31:06
【问题描述】:
我有一个有点复杂的查询。
我有桌子
tbl_Categories {CategoryID, Name, CategoryId_fk}
它是一个自引用表。
当CategoryId_fk 为NULL 时,当有一个值为child 时,该行为parent。
我无法选择所有孩子(这是CategoryId_fk 不是null)和CategoryId_fk 是null 并且没有孩子的行。
我尝试了一些东西但没有用:
SELECT a.*
FROM tbl_Categories a
WHERE NOT EXISTS (
SELECT 1 FROM tbl_Categories b
WHERE b.CategoryId_fk= a.CategoryId_fk
)
【问题讨论】:
-
在 StackOverflow 中搜索“Recursive CTE”,了解如何解决此类问题的数十个示例。 edit 在“层次结构”中折腾以获得更具体的示例。
-
嗯.. 我想我没有做对。如果你想要所有的孩子和所有的父母,那不是整张桌子吗?能否提供样本数据?
-
@BhrugeshPatel - 整张桌子没有父母有个孩子。
标签: sql sql-server sql-server-2008 tsql