Doctrine orm 如何实现对同一列上多个表的连接
我的情况是这样的 item_主表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_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');您的答案对找到我的答案帮助很大。