我的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 ...
发布于 2012-07-15 07:26:07
在DQL中,您对对象(实体)而不是表(基于映射)进行操作。所以当你有像这样的实体时:
class User
{
private $id;
private $name;
}
class TableA
{
private $id;
private $user;
private $userR;
private $userA;
}
您可以像这样创建查询(当您拥有有效的映射时)
SELECT a
FROM nastyBundle:TableA a
INNER JOIN a.user u
LEFT JOIN a.userR ur
LEFT JOIN a.userA ua
但是,是的,要使用它,您需要映射信息。如果您没有映射,您可以使用doctrine:mapping:import生成它,只需在symfony项目中键入内容即可读取更多php app/console help doctrine:mapping:import
https://stackoverflow.com/questions/11484945
复制相似问题