带有JOIN的Doctrine2 SELECT查询

时间:2014-06-15 23:01:55

标签: symfony doctrine-orm dql

我已经彻底搜索了SO和谷歌但是我找不到这个基本问题的答案。

我在Symfony2中有以下实体

ADR\PortalBundle\Account
ADR\UserBundle\User (FOSUserBundle)

每个用户都有一个帐户,一个帐户可以拥有多个用户(所有这些用户似乎都可以在网站的其他位置使用)。

我有以下查询:

$query = $em->createQuery(
        'SELECT u, a
        FROM ADRUserBundle:User u
        JOIN ADRPortalBundle:Account a
        WHERE u.id = :userId'
        )->setParameter('userId', $this->getUser()->getId());

这会返回单个帐户数据以及所有帐户。

我真正想要的是此特定用户的帐户数据。

推翻了查询,因此FROM是帐户实体,而JOIN是用户实体,我反过来,只有一个帐户和数据库中的所有用户。

1 个答案:

答案 0 :(得分:1)

这可能是因为您实际上并未连接特定字段上的表。

所以你需要类似的东西(我使用u.account作为引用帐户的用户属性)

JOIN ADRPortalBundle:Account u.account a

您可能还想看看: http://docs.doctrine-project.org/en/2.1/reference/dql-doctrine-query-language.html