选择一个父母和所有给定父母或孩子ID的孩子

卑鄙的

我有一个表,允许一个父行有多个孩子:

ID    ParentID    Name
1     NULL        'I am the parent'
2     1           'I am a child'
3     1           'I am another child'
4     NULL        'I am a loner'

我正在寻找一种最简单,最有效的方法,从该“家族”中的任何给定ID返回“家族”中的所有行。如果给出1、2或3,则将返回前三行;如果给出4,则仅将返回最后一行*。

如果可以的话(或者某种存储过程),我很乐意将其作为单个SQL调用,因为这将经常被调用。

我的最佳尝试导致了多次致电:

SELECT ParentID FROM Person WHERE ID = @id

/*if (parentid == null)*/
    SELECT * FROM Person WHERE ID = @id OR ParentID = @id
/*else*/
    SELECT * FROM Person WHERE ID = @parentid OR ParentID = @parentid

*父母本身不能拥有父母,因此不需要递归。

蒂姆·施密特

您需要这些OR来找到您的家人:

SELECT * FROM Person WHERE ID = @id 
OR ParentID = @id 
OR ID = (SELECT ParentID FROM Person p2
         WHERE ID = @id)
OR ParentID = (SELECT ParentID FROM Person p2
         WHERE ID = @id)

Demo

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

选择一个父母和所有给定父母或孩子ID的孩子

来自分类Dev

选择匹配的孩子父母的所有孩子表ID

来自分类Dev

为现有父母保存一个孩子

来自分类Dev

Android:视图-孩子已经有一个父母

来自分类Dev

ActiveRecord-列出所有父母没有一个特定的孩子

来自分类Dev

将一个孩子的改变传达给父母的父母

来自分类Dev

如何在一个查询中让所有孩子成为父母

来自分类Dev

由父母的另一个孩子生孩子

来自分类Dev

让所有父母为孩子

来自分类Dev

针对父母的所有孩子

来自分类Dev

Android | 指定的孩子已经有一个父母。您必须先在孩子的父母上调用removeView()

来自分类Dev

指定的孩子已经有一个父母。您必须先在孩子的父母上调用removeView()。(C#)

来自分类Dev

指定的孩子已经有一个父母。您必须先对孩子的父母调用removeView()

来自分类Dev

指定的孩子已经有一个父母。您必须先在孩子的父母上调用removeView()”

来自分类Dev

指定的孩子已经有一个父母。您必须先在孩子的父母上调用removeView()

来自分类Dev

指定的孩子已经有一个父母。您必须先在孩子的父母上调用removeView()。(C#)

来自分类Dev

Android | 指定的孩子已经有一个父母。您必须先在孩子的父母上调用removeView()

来自分类Dev

我如何称呼有至少一个孩子关系的孩子的父母?

来自分类Dev

选择所有孩子都有状态 x 的父母

来自分类Dev

父母div有两个孩子。即使不显示其他孩子,也要始终让一个孩子填满父母吗?

来自分类Dev

父母div有两个孩子。即使不显示其他孩子,也总是让一个孩子填满父母吗?

来自分类Dev

父母和第一个/最后一个孩子的边际崩溃如何工作?

来自分类Dev

查询所有孩子都有一对/重复的父母

来自分类Dev

休眠两个父母一个孩子映射

来自分类Dev

当所有孩子共享相同的值时查找父母ID

来自分类Dev

如果一个模型以续集形式引用自己,如何使所有孩子或父母处于多对多关联中?

来自分类Dev

与父母一起举一个孩子的例子

来自分类Dev

内在加入所有孩子前(n)个父母

来自分类Dev

从两个父母 CSS 获取所有特定的孩子

Related 相关文章

  1. 1

    选择一个父母和所有给定父母或孩子ID的孩子

  2. 2

    选择匹配的孩子父母的所有孩子表ID

  3. 3

    为现有父母保存一个孩子

  4. 4

    Android:视图-孩子已经有一个父母

  5. 5

    ActiveRecord-列出所有父母没有一个特定的孩子

  6. 6

    将一个孩子的改变传达给父母的父母

  7. 7

    如何在一个查询中让所有孩子成为父母

  8. 8

    由父母的另一个孩子生孩子

  9. 9

    让所有父母为孩子

  10. 10

    针对父母的所有孩子

  11. 11

    Android | 指定的孩子已经有一个父母。您必须先在孩子的父母上调用removeView()

  12. 12

    指定的孩子已经有一个父母。您必须先在孩子的父母上调用removeView()。(C#)

  13. 13

    指定的孩子已经有一个父母。您必须先对孩子的父母调用removeView()

  14. 14

    指定的孩子已经有一个父母。您必须先在孩子的父母上调用removeView()”

  15. 15

    指定的孩子已经有一个父母。您必须先在孩子的父母上调用removeView()

  16. 16

    指定的孩子已经有一个父母。您必须先在孩子的父母上调用removeView()。(C#)

  17. 17

    Android | 指定的孩子已经有一个父母。您必须先在孩子的父母上调用removeView()

  18. 18

    我如何称呼有至少一个孩子关系的孩子的父母?

  19. 19

    选择所有孩子都有状态 x 的父母

  20. 20

    父母div有两个孩子。即使不显示其他孩子,也要始终让一个孩子填满父母吗?

  21. 21

    父母div有两个孩子。即使不显示其他孩子,也总是让一个孩子填满父母吗?

  22. 22

    父母和第一个/最后一个孩子的边际崩溃如何工作?

  23. 23

    查询所有孩子都有一对/重复的父母

  24. 24

    休眠两个父母一个孩子映射

  25. 25

    当所有孩子共享相同的值时查找父母ID

  26. 26

    如果一个模型以续集形式引用自己,如何使所有孩子或父母处于多对多关联中?

  27. 27

    与父母一起举一个孩子的例子

  28. 28

    内在加入所有孩子前(n)个父母

  29. 29

    从两个父母 CSS 获取所有特定的孩子

热门标签

归档