2012-01-16 165 views
0

如果有两个表,一个是玩家,另一个是现场。MySql:如何从给定条件获取下一条记录

表::球员:

uid:10, name:jack 
uid:23, name:david 
uid:37, name:james 
uid:42, name:nick 
uid:58, name:mark 

表::游戏

gid: 20, last_player: david 
gid: 32, last_player: jack 
gid: 38, last_player: mark 
gid: 43, last_player: nick 

如何找到下一个玩家形成一个给定的GID? 我正在寻找像一些语句:

SELECT p.uid, p.name FROM player p AND onfield o WHERE o.last_player = p.name AND gid=20 ORDER BY uid ASC; 

如果GID = 20,答案是UID:37,店名:詹姆斯

如果GID = 38,答案是UID:10,店名:插孔

问题是,我必须从声明中获取下一条记录,并且在“last_player ='标记'”的情况下,我得到第一条记录。

有没有办法解决这个SQL查询内?

回答

0

如果o.last_player!=标记

SELECT p.uid, p.name FROM player p, onfield o WHERE o.last_player = p.name 
    AND p.uid > o.guid ORDER BY uid ASC limit 1; 

如果o.last_player ==标志

SELECT p.uid, p.name FROM player p, onfield o ORDER BY p.uid ASC limit 1; 
相关问题