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