Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从表中获取数据的嵌套查询_Php_Mysql_Symfony_Doctrine Orm - Fatal编程技术网

Php 从表中获取数据的嵌套查询

Php 从表中获取数据的嵌套查询,php,mysql,symfony,doctrine-orm,Php,Mysql,Symfony,Doctrine Orm,我用过下面的桌子 用户表 | Id | Name | client_id | |----|------|-----------| | 1 | Emp1 | 256 | | 2 | Emp2 | 256 | | 3 | Emp3 | 257 | | 4 | Emp4 | 258 | | 5 | Emp5 | 258 | 和客户经理表 | Id | user_id | client_id | type | |----|-----

我用过下面的桌子 用户表

| Id | Name | client_id |
|----|------|-----------|
| 1  | Emp1 | 256       |
| 2  | Emp2 | 256       |
| 3  | Emp3 | 257       |
| 4  | Emp4 | 258       |
| 5  | Emp5 | 258       |
和客户经理表

| Id | user_id | client_id | type |
|----|---------|-----------|------|
| 15 | 3       | 256       | A    |
| 16 | 4       | 257       | A    |
| 17 | 5       | 258       | A    |
每个用户都是某个/某些客户端的客户经理。我想查询单个给定用户的所有高级帐户管理器。例如,在上述关系和数据中

Current User = 1

owner of 1 ------> is 3
owner of 3 ------> is 4
owner of 4 ------> is 5
owner of 5 ------> is 5
最后一个用户Emp5本身就是客户经理。这就是我必须停止循环的地方

下面是我如何找到客户经理或给定用户的,但之后我不知道如何再次循环找到他们的经理

$queryBuilder = $this->createQueryBuilder('t');
$queryBuilder
    ->where('t.ownerTypeId = :ownerTypeId')
    ->andWhere('t.clientId IN(:clientIds)')
    ->setParameter('ownerTypeId', 'A')
    ->setParameter('clientIds', $clientIds)
;

SELECT * FROM account_team_owner a0_ 
WHERE a0_.owner_type_id = 'A' AND a0_.client_id IN ('256');
返回此记录

| Id | user_id | client_id | type |
|----|---------|-----------|------|
| 15 | 3       | 256       | A    |

现在我想通过相同的查询找到
user\u id=3
的客户经理。等等在一个或两个查询中。

我不完全了解您的表,但听起来您需要一个递归层次查询。堆栈溢出就是这个问题。你的
createQueryBuilder
是什么样子的?@TimBiegeleisen仔细看,它是不同的。看看不同的树模型,我认为将其设置为一个树可以使查询此类数据变得更容易您想要最后一位客户经理还是所有客户经理?这意味着您在示例中只需要5或1、3、4和5?