2010-02-13 154 views
2

我有一个“游戏”表,其中包含player_idplayer_action为条件选择一条记录

player_id | player_action 
1   | move 
1   | move 
1   | attack 
2   | attack 
2   | attack 
3   | move 
3   | move 

而且我一定要得到与“移动”操作的所有球员,但每名球员只有一行, 结果应该看起来像

1 | move 
3 | move 

会有人有关于如何实现这一点的想法?

回答

2

看起来你打算做到以下几点:

SELECT 
    player_id, player_action 
FROM 
    games 
WHERE 
    player_action = 'move' 
GROUP BY 
    player_id 
0
select distinct player_id, player_action from games where player_action = "move" 
+0

是否也删除重复的player_action? – oneat 2010-02-13 14:27:34

0

使用DISTINCT子句:

SELECT DISTINCT player_id, player_action FROM games WHERE player_action = 'move'; 

distinct子句将删除重复的记录。 (我敢肯定,还有很多其他的解决方案这一点。)

+0

它是否会删除player_action中的重复内容? – oneat 2010-02-13 14:26:27

+0

不起作用.. – 2010-02-13 14:28:38

+0

DISTINCT应删除* * player_id和player_action的组合不唯一的任何情况。 (我没有测试过这个具体的查询,但我认为这就是它的行为。)@kemp:我当然可能犯了一个错误:你能告诉我什么不起作用吗? – 2010-02-13 14:30:08