我想不出如何从我的sql中检索某些数据。 我正在使用symfony3和教义。但是SQL也可以。
Game
- id
- hometeam
- awayteam
Player
- id
- team
GameAction
- id
- game
- player
- action
Action
- id
- name
操作表中的 2 个操作是"上冰"和"下冰">
我想找出哪些球员目前"在冰上"。我正在寻找所有在这场比赛中有"上冰"事件而没有后续"下冰"事件的玩家。
这样的查询会是什么样子的?
任何提示都非常感谢
一种常规方法是比较每个操作的计数:
SELECT player
FROM GameAction ga
JOIN Action a on ga.action = a.id
GROUP BY player
HAVING COUNT(CASE WHEN a.name = 'gets on ice' THEN 1 END) > COUNT(CASE WHEN a.name = 'gets off ice' THEN 1 END)
这将仅显示"上冰"实例多于"下冰"实例的玩家,并说明每个玩家多次发生的这些操作。
注意:不太确定这些列是否适合您的连接/选择,如果没有示例数据很难判断,但您可以连接到其他表并将其他列添加到选择中并根据需要分组(game
、team
)