MySQL的结果集应该包含共同的价值行在

MySQL的结果集应该包含共同的价值行在

问题描述:

列我有一个表,如下所示:MySQL的结果集应该包含共同的价值行在

id, section, row, seat 
1 Stalls A  25 
2 Stalls A  26 
3 Stalls B  1 
4 Stalls B  2 
5 Stalls B  3 
6 Stalls B  4 
7 Lounge C  1 
8 Lounge C  2 

正如你可能已经猜到,该表代表的休息计划。我需要能够查询桌子给我相邻的座位。例如,如果我需要三个座位,它应该给我的座位ID 3,4,5而不是1,2,3。但是,如果我需要两个席位,它应该给我席位编号1,2

在sql术语中,我需要能够查询'section'和'row'列中具有相同值的行。任何帮助,将不胜感激。

select id, section, row,seat,rank 
from (select id, section, row,seat, 
     @rank:=if(@lastsection=section and @lastrow=row and @lastseat=seat-1,@rank,@rank+1) rank, 
     @lastsection:=section,@lastrow:=row,@lastseat:=seat 
     from tblA, (select @lastsection:='',@lastrow:='',@lastseat:='', @rank:=1)v 
     order by section,row,seat)s 
GROUP BY rank 
HAVING count(rank)>=numberofseatdesired; 

这将返回具有所需的相邻座位号的id,section,row,starting seat。您可能需要第二次查询才能检索每个座位的详细ID。

+0

谢谢。抱歉没有记录我努力让它工作的努力。这显然不符合标准。 :) – Venks 2013-04-25 08:02:21