我无法想出如何从我的sql中检索某些数据。 我正在使用symfony3和doctrine。但SQL也会这样做。
Game
- id
- hometeam
- awayteam
Player
- id
- team
GameAction
- id
- game
- player
- action
Action
- id
- name
动作表中的2个动作是“冰上行动”。并且'离开了冰'
我想知道目前哪些球员在冰上?#。我正在寻找所有那些有过冰上赛车的球员,没有跟随他们的冰球赛。这个游戏中的事件。
这样的查询怎么样?
任何暗示非常赞赏
答案 0 :(得分:1)
一种通用的方法是比较每个动作的计数:
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)
这只会显示有更多“冰上飞机”的玩家。比起“冰”,并说明每个玩家多次发生这些行为。
注意:不确定这些是您的加入/选择的正确列,没有示例数据很难说,但您可以加入其他表并将其他列添加到select和group by as需要(game
,team
)