SQL的学说从日志表中获取状态



我想不出如何从我的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)

这将仅显示"上冰"实例多于"下冰"实例的玩家,并说明每个玩家多次发生的这些操作。

注意:不太确定这些列是否适合您的连接/选择,如果没有示例数据很难判断,但您可以连接到其他表并将其他列添加到选择中并根据需要分组(gameteam)

相关内容

  • 没有找到相关文章

最新更新