Php 获取具有行之间关系的行

Php 获取具有行之间关系的行,php,mysql,database,recursion,Php,Mysql,Database,Recursion,我的数据库中有一个表,其中包含客户和公司之间的关系。 下面是现有表格的一部分 +----+---------+---------+ | ID | Client1 | Client2 | +----+---------+---------+ | 18 | 250 | 77 | | 19 | 250 | 317 | | 13 | 317 | 12 | | 5 | 23 | 12 | +----+---------+------

我的数据库中有一个表,其中包含客户和公司之间的关系。 下面是现有表格的一部分

+----+---------+---------+
| ID | Client1 | Client2 |
+----+---------+---------+
| 18 |     250 |      77 |
| 19 |     250 |     317 |
| 13 |     317 |      12 |
|  5 |      23 |      12 |
+----+---------+---------+
当看到客户机250时,我还可以看到客户机77和317。我希望能够获取链中其他客户机的ID,以便当我的用户打开客户机250时可以看到77、317、12和23的ID。 是否有一种方法可以通过一个mysql查询获取所有ID,或者我应该进行其他数据处理。 以下是对当前情况的查询和一些检查:

$sql = "SELECT cc.Id, cc.Client1Id, cc.Client2Id, cc.Note
            FROM ClientConnections as cc
            WHERE cc.Client1Id  = ? OR cc.Client2Id = ?";
            $stmt = $this->db -> prepare($sql);
            $stmt -> bind_param('ii', $id, $id);
            $stmt -> execute();
            $stmt -> bind_result($connectionId, $client1Id, $client2Id, $note);
            $stmt -> store_result();

        while($stmt -> fetch()){

            //if found client has the same id as the current client
            if ($client1Id == $id) {
                $clientId = $client2Id;
            }elseif ($client2Id == $id) {           
                $clientId = $client1Id;
            }

            $name = $this->getClient($clientId); //getting client info

            $array[] = array(
                'id' => $connectionId,
                'client_id' => $clientId,
                'name' => $name['name'],
                'payment_status' => $name['payment'],
                'note' => $note
            );

        }
如果有一个问题可以解决,这项工作将是完美的,但如果没有,我会很高兴有人给我一个想法如何做到这一点。也许是递归?我卡住了。

试试这个

这个家伙正在使用
GROUP\u CONCAT
对行进行分组。您可以在查询中使用它根据客户端1对行进行分组

  SELECT k.id, GROUP_CONCAT(d.value ORDER BY d.name separator ' ')
  FROM keywords AS k
  INNER JOIN data as d ON k.id = d.id
  GROUP BY k.id

问题是,他使用两个表来实现这一点,因此您可以拆分表,也可以在同一个表上执行
内部连接(选择..

我尝试了给定的查询,但正如我在D B的回答中所写,我需要所有连接,而不仅仅是明显的连接。