2017-03-18 89 views
1

我是SQL新手。我想限制根據特定表格的單元格值選擇的學生。sql限制基於列值的行數

例如。以下作品

SELECT st.sid, st.sname, st.marks 
FROM student st, subjectcombinations sc 
WHERE st.scode = sc.scode 
LIMIT 10 

但是,相反的硬編碼10的限制,我怎麼可以使用類似下面

SELECT st.sid, st.sname, st.marks 
FROM student st, subjectcombinations sc 
WHERE st.scode = sc.scode 
LIMIT (SELECT intakecapacity FROM subjectcombinations); 

回答

0

試試這個:

SELECT st.sid, st.sname, st.marks, @row := @row + 1 
FROM student st, subjectcombinations sc, (select @row := 0) a 
WHERE st.scode = sc.scode 
AND @row <= (SELECT intakecapacity FROM subjectcombinations); 

下面是一個例子SQL Fiddle

請注意,您需要使用ORDER BY,使用LIMIT而沒有ORDER BY將是非常沒有意義的。