2014-02-26 33 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

相關問題