Doctrine Nested Query从表中获取数据

时间:2017-07-06 10:03:28

标签: php mysql symfony doctrine-orm

我在下面使用表格 用户表

| Id | Name | client_id |
|----|------|-----------|
| 1  | Emp1 | 256       |
| 2  | Emp2 | 256       |
| 3  | Emp3 | 257       |
| 4  | Emp4 | 258       |
| 5  | Emp5 | 258       |

和account_managers表

| 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_id = 3的帐户管理员。等等。在一两个查询中。

0 个答案:

没有答案