如何在 doctrine 的同一列上实现多个 table 的连接

how to implement join to more than one table on same column in doctrine

我的场景是这样的

item_master table

item_id (primary key) | item_name
--------------------------------------
      1               |     Keyboard
--------------------------------------
      2               |     Mouse
--------------------------------------

user_lp_requirement table

id1 |item_id | otherColumns1
-----------------------
1   |  1     | 1
-----------------------
1   |  2     | 3
-----------------------
item_id is foreign key reference to item_master

training_program table

id2 |item_id | otherColumns2
-----------------------
1   |  1     | 1
-----------------------
1   |  2     | 4
-----------------------
item_id is foreign key reference to item_master

编辑: 在实体中,我将 user_lp_requirement.item_id 映射到 item_master.item_id。因此,如果我在查询构建器连接中提到 item_id,它会自动将 user_lp_requirement 连接到 item_master

现在的问题是如何使用 doctrine queryBuilder 在 "item_id" 上将 user_lp_requirement 加入到 training_program。

仅供参考->查询将写入 Application\Entity\Repository\UserLpRequirementRepository。

$queryBuilder
    ->select('u', 'i.item_name', 't.otherColumns2')
    ->from('user_lp_requirement', 'u')
    ->innerJoin('u', 'item_master', 'i', 'u.item_id = i.item_id')
    ->innerJoin('u', 'training_program', 't', 'u.item_id = t.item_id');

这假设您希望用户 table 映射到项目 table 并且用户 table 映射到训练 table 而不是用户 table 映射到训练 table 和项目 table 的连接。