2014-02-26 40 views
3

我有以下我的sql查询,我想从其他表中取出限制开始索引,我该怎么办?如何限制起始值来自mysql中的其他表

SELECT std.totalmarks 
    FROM student as std 
    WHERE std.status=1 
ORDER BY (std.datetime) ASC 
    LIMIT ( 
      SELECT us.startnum 
      FROM user AS us 
      WHERE us.username='abc' 
     ),10 
+0

你收到任何错误? – frlan

+0

没有足够的数据 – Alexander

+0

我不认为'limit'允许偏移量为 –

回答

2
select q.totalmarks from 
(
SELECT *,@curRow := @curRow + 1 AS row_number 
FROM student as std JOIN (SELECT @curRow := 0) r 
WHERE std.status=1 
ORDER BY (std.datetime) ASC 
) q 
where row_number>( 
      SELECT us.startnum 
      FROM user AS us 
      WHERE us.username='abc' 
     ) 
limit 10 
+1

错误std.totalmarks未知列 – aemie

+1

是的。表是别名。我改为q.totalmarks –

2
select * from 
    (SELECT std.totalmarks, numstart.startnum, @n:[email protected]+1 as number 
    FROM student as std, 
     (SELECT us.startnum 
      FROM user AS us 
      WHERE us.username='abc') as numstart, 
     (SELECT @n:=0) sess_var 
    WHERE std.status=1 
    ORDER BY (std.datetime) ASC) res 
where number>=startnum 
LIMIT 0,10 
+0

非常感谢,它是完美的工作。 – aemie

+0

@Ashi然后接受正确的答案 – StanislavL

+0

我该如何接受?你想要说什么?我正在使用它,并且我将答案标记为有用。 – aemie

相关问题