我有三个这样的表:
表播放器:id,名称
表匹配事件:id、player_id、eventcategory_id、描述
表事件类别:id,名称
关系是: player : matchevent - 1:N matchevent : eventcategory - N:1
在桌面球员中,我有足球运动员的姓名和事件类别事件,如黄牌、替换等。在桌面比赛事件中,我存储属于某个类别的球员事件。
现在我想检索所有玩家拥有的 COUNT 个事件。例如:
- 第一名球员有 COUNT 张黄牌 0、换人 0 和进球 0
- 第二名球员有1张黄牌0换人2球
- 第三名球员有0张黄牌,0换人0进球
- ETC
我怎样才能在 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,
))