我有三张这样的表:
表播放器: id,name
表 matchevent : id,player_id,eventcategory_id,description
表 eventcategory : id,name
关系是: player:matchevent - 1:N matchevent:eventcategory - N:1
在桌面播放器中,我有足球运动员的名字和在eventcategory事件中,如黄牌,替换等。在表matchevent中,我存储属于某个类别的玩家事件。
现在我想要检索所有玩家都有的COUNT个事件。例如:
我如何在DQL中执行此操作?我试过LEFT JOIN和IN,但它没有用。它只选择有事件的玩家,而不是所有玩家。
->createQuery('SELECT p, i
FROM MyBundle:player p
LEFT JOIN p.matchevent i
WHERE i.eventcategory IN (:eventcategory)
ORDER BY p.player ASC
')
->setParameters(array(
'eventcategory' => $eventcategory,
))
答案 0 :(得分:0)
使用正确的联接,即使他们没有活动,也应该强制它返回所有玩家。
'SELECT p, i
FROM MyBundle:player p
RIGHT JOIN p.matchevent i
WHERE i.eventcategory IN (:eventcategory)
ORDER BY p.player ASC
')