JOIN DQL(symfony2)两个表之间的多个联接

JOIN DQL(symfony2)两个表之间的多个联接,join,symfony,doctrine-orm,dql,Join,Symfony,Doctrine Orm,Dql,我的DQL查询有问题。我有一个表,它有3个外键userId、userRId和userAId。其中两个外键可能为空 我想连接查询中的所有外键,但我不知道如何在同一个表之间连接两个或三个外键。(见查询)有人能给我一些想法吗 **TABLE A** id userId userRId userAId 1 2 NULL NULL 1 2 1 NULL 1 2 NULL

我的DQL查询有问题。我有一个表,它有3个外键userId、userRId和userAId。其中两个外键可能为空

我想连接查询中的所有外键,但我不知道如何在同一个表之间连接两个或三个外键。(见查询)有人能给我一些想法吗

   **TABLE A**
   id    userId   userRId   userAId
   1     2        NULL      NULL
   1     2         1        NULL
   1     2        NULL         1

**TABLE USER**
userId  name
  2     xxxx
  1     xxxx

The DQL query:

"SELECT FROM nasyBundle:A a JOIN a.userId u , a JOIN userRId , a JOIN userAid
         WHERE ...

在DQL中,操作对象(实体)而不是表(基于映射)。所以当你有这样的实体时:

class User
{
    private $id;
    private $name;
}

class TableA
{
    private $id;
    private $user;
    private $userR;
    private $userA;
}
您可以这样创建查询(当您有有效的映射时)


但是,是的,为了解决这个问题,你需要地图信息。如果没有映射,您可以使用doctor:mapping:import生成它,只需输入symfony项目即可阅读更多
php应用程序/控制台帮助doctor:mapping:import

在DQL中,您对对象(实体)而不是表(基于映射)进行操作。所以当你有这样的实体时:

class User
{
    private $id;
    private $name;
}

class TableA
{
    private $id;
    private $user;
    private $userR;
    private $userA;
}
您可以这样创建查询(当您有有效的映射时)


但是,是的,为了解决这个问题,你需要地图信息。如果您没有映射,您可以使用条令:映射:导入生成它,只需输入您的symfony项目即可阅读更多
php应用程序/控制台帮助条令:映射:导入

谢谢!我没有得到结果,因为我没有使用左连接,现在它工作正常。谢谢!我没有得到结果,因为我没有使用左连接,现在它工作正常。