2017-03-18 51 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将是非常没有意义的。