JOIN DQL(symfony2)两个表之间的多个联接
我的DQL查询有问题。我有一个表,它有3个外键userId、userRId和userAId。其中两个外键可能为空 我想连接查询中的所有外键,但我不知道如何在同一个表之间连接两个或三个外键。(见查询)有人能给我一些想法吗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
**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应用程序/控制台帮助条令:映射:导入
谢谢!我没有得到结果,因为我没有使用左连接,现在它工作正常。谢谢!我没有得到结果,因为我没有使用左连接,现在它工作正常。