Doctrine查询构建器 - 在两个表

时间:2016-07-24 13:44:50

标签: php symfony doctrine-orm

此查询使我能够获得所有给予球队ID的球员以及当他的身体状态等于2时。

$qb = $this->createQueryBuilder('player')
    ->where('player.physicalState= 2')
    ->join('player.team', 'team')
    ->addSelect('team')
    ->where('team.id = :id')
    ->setParameter('id', $teamId);

return $qb->getQuery()->execute()

但事实是:我还有另一个表OLD_TEAM。玩家与TEAM和OLD_TEAM有一对多的关系。因此,玩家可以链接到TEAM或OLD_TEAM。

所以我想改进/完成我的查询以获得类似

的内容
  

在TEAM表中搜索ID为x的团队中的玩家。如果这不存在,我想在OLD_TEAM表中搜索相同的内容。

我不知道这个解决方案是否是搜索的最佳解决方案,如果存在更简单的解决方案,请随时通知我。

PS:OLD_TEAM和TEAM对PK使用相同的序列。

感谢。

2 个答案:

答案 0 :(得分:0)

感兴趣,我跟着。

然后,我认为在这种情况下,您可以使用简单的OR。

答案 1 :(得分:0)

不确定是否可以使用querybuilder,但使用纯SQL。您可以使用的一个示例Checking whether an item does not exist in another table