Doctrine orm 如何实现对同一列上多个表的连接

Doctrine orm 如何实现对同一列上多个表的连接,doctrine-orm,doctrine,doctrine-query,Doctrine Orm,Doctrine,Doctrine Query,我的情况是这样的 item_主表 item_id (primary key) | item_name -------------------------------------- 1 | Keyboard -------------------------------------- 2 | Mouse -------------------------------------- 用户需求表 id1

我的情况是这样的

item_主表

item_id (primary key) | item_name
--------------------------------------
      1               |     Keyboard
--------------------------------------
      2               |     Mouse
--------------------------------------
用户需求表

id1 |item_id | otherColumns1
-----------------------
1   |  1     | 1
-----------------------
1   |  2     | 3
-----------------------
item_id is foreign key reference to item_master
培训计划表

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\u id”培训计划

仅供参考->查询将写入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');

这假定您希望将用户表映射到项目表,并将用户表映射到培训表,而不是将用户表映射到培训表和项目表的联接

它给出了错误:[语义错误]第0行第42列“用户需求”:错误:未定义类“用户需求”。您可以检查实体定义。您在问题中提到的类别是
用户需求
(无)。错误消息中提到的类是
用户需求
(带有s)。此外,在发布答案后,识别您对问题所做的编辑也是一种很好的做法,这样其他读者就可以跟随对话框。我得到了答案:$queryBuilder->select(array('ulr','im.item_name','tp.otherColumns2')->from('Application\Entity\UserLpRequirements','ulr')->innerJoin('ulr.item','im')->innerJoin('Application\Entity\TrainingProgram','tp',JOIN::WITH'tp.item=ulr.itemId');您的答案对找到我的答案帮助很大。