【发布时间】:2018-12-04 10:20:42
【问题描述】:
我正在寻找一种方法来查询整个树结构(包括顶部父级,结束底部子级),基于基于顶部父级的查询。
但是!它应该返回: - 结构(多个元素), - 或只有一个元素(顶级结构,如果下面没有子元素 - 但在这种情况下,只有在没有“更高”的情况下 - ParentID 在这种情况下为 NULL)。
即有一张桌子:
|--------------|
|ID | ParentID|
|--------------|
|229 | NULL |
|230 | 229 |
|231 | 229 |
|232 | 229 |
|233 | 229 |
| |
|300 | NULL |
|301 | 300 |
|302 | 301 |
|303 | 302 |
|304 | 300 |
| |
|305 | NULL |
----------------
基于对 229 的查询,结果应该是:
229
230
231
232
233
基于对 230、231、232、233 的查询,结果应该是空!
根据查询300,结果应该是:
300
301
302
303
304
基于对301的查询,结果应该是:
301
302
303
基于对302的查询,结果应该是:
302
303
根据303或304的查询,结果应该是empty!
根据305的查询,结果应该是:
305
【问题讨论】:
-
当您查询
301时为什么要303? -
因为 303 是子 id 302,其中 302 是子 od 301。
标签: sql sql-server