MySQL + PHP 脚本查询单个表中两个字段相关的记录[关闭]

问题描述 投票:0回答:0

我正在尝试编写一个脚本(PHP + MySQL)来查找由 2 个字段(id - id_from)相关的一定数量的记录。

我的表:

id id_from id_type 描述
1 1 AAA
2 1 BB
3 1 2 CCC
4 1 2 DDD
5 2 2 EEE
6 3 3 FFF
7 5 3 GGG
8 7 4 HHH
9 8 6
10 4 4 JJJ

给定任何id,我需要找到所有相关的记录(如果我有id 1,结果应该是3、4、6、10;如果id是7,结果应该是2、5、8、9) .

记录类型(id_type)或这些记录之间的关系数量没有限制;用户可以构建 6 种不同类型甚至 N,而且他们仍然可以无限制地从其他记录中生成更多记录。

我不负责数据库的设计。

我尝试循环基本查询(其中 id = N),将所有 N 存储在一个数组中,但这会跳过从同一记录派生的记录中派生的子项;因此,在我的第一个示例中,我丢失了记录 10,因为它派生自 4,这是 id 1 的第二次派生。

一个问题是我朝两个方向移动,从 id_from 和 id_from 中寻找 id,因为搜索并不总是从生成其他记录的第一条记录开始,可以提供任何记录来收集所有父母。

在一个循环中有 2 个循环(两个向前,另外两个向后)生成重复项(我在最后清理)。

php jquery mysql nested-loops self-join
© www.soinside.com 2019 - 2024. All rights reserved.