如何从单个 MySQL 查询中获取 Parent 的所有子记录 [重复]

Posted

技术标签:

【中文标题】如何从单个 MySQL 查询中获取 Parent 的所有子记录 [重复]【英文标题】:How to get all child records by Parent from a single MySQL Query [duplicate] 【发布时间】:2014-06-10 07:24:20 【问题描述】:

我有一个具有父子关系的 mysql 表。当我提供父 ID 时,我需要更新所有子记录的一个字段。父级在表中可以有无限的子级。

我的桌子是这样的

ID 名称 ParentID

1个

2 b 1

3 c 2

4 天 1

我该怎么做?

谢谢

【问题讨论】:

【参考方案1】:
select * from Child where parent_id in(select parent_id from Parent)

上面的例子应该适合你,也总是提到你在问题中尝试过的东西。

更好的解决方案 创建不同的表,如父、子、大子。 Parent Id 应该存在于 Child 表中,而 Child_id 应该存在于 Grand Child 表中。这将解决您的问题。

【讨论】:

感谢您的建议。但这对我不起作用。我所有的记录都在一张桌子上。其中有 ParentID 列。 那么,父条目(Parent_id)在您的表中为每个孩子重复? 是的..我的桌子是这样的 ok.. np.. select * from table where parent_id = 4 不起作用?你能分享你正在尝试的查询吗? 我需要列出所有子记录...例如,如果我说父 ID 1 我需要列出所有 2,3,4.. 3 还需要列出,因为 1 是祖父母3. 像这样我有无限级别的子记录

以上是关于如何从单个 MySQL 查询中获取 Parent 的所有子记录 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

从zend 2中的mysql查询中获取所有数据

使用单个查询(递归查询)在 mysql 表中查找所有父级

如何从python中的SQLite查询中获取单个结果?

如何将键映射到 MySQL 选择查询中单个字段的值

如何从android中的单个查询中获取联系人的名字,姓氏,电子邮件ID

PHP/PDO/MySQL:将多个查询转换为单个查询