4
我有2個實體:DQL查詢與加盟桌子和兩個連接
/**
* @ORM\Entity
* @ORM\Table(name="users")
*/
class User
{
/**
* @ORM\ManyToMany(targetEntity="Myapp\UserBundle\Entity\Group")
* @ORM\JoinTable(name="user_groups",
* joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="group_id", referencedColumnName="id")}
*)
*/
protected $groups;
...
}
和
/**
* @ORM\Entity(repositoryClass="Myapp\UserBundle\Repository\GroupRepository")
* @ORM\Table(name="groups")
*/
class Group
...
我不能找到一種方法來創建一個DQL查詢導致SQL這樣的:
SELECT g.name, g.id, count(u.id)
FROM users u
LEFT JOIN user_groups ug ON u.id = ug.user_id
RIGHT JOIN groups g ON g.id = ug.group_id
GROUP BY g.id
我試過了,失敗了:
$this->getEntityManager()
->createQuery('
SELECT g.id, g.name, count(u.id) as usercount FROM MyappUserBundle:User u
JOIN u.groups g
GROUP BY g.id'
);
由於結果不包含沒有用戶的組。
它只讓我回到那個有用戶的羣組。但我也需要空組,以及計數0 – user1063963 2011-12-16 16:11:45