我有三张桌子
1.course(c_id(pk),c_name,sem_no);
2.student(s_id(pk),s_name,user_name,password);
3.student_info(s_id(fk),c_id(fk));
我已登录学生,然后我运行此查询
SELECT distinct sem_no FROM course,student_info WHERE course.c_id=student_info.c_id and s_id='0001' ORDER BY sem_no ;
它显示了他通过的所有学期,包括正在运行的学期。 现在
我想将sem_no
列的最后一个值显示为他当前的学期..
如何获取sem_no
的最后一个值?
我们将不胜感激任何帮助!
答案 0 :(得分:2)
以下是您想要的改进版本:
SELECT sem_no
FROM course c join
student_info si
on c.c_id = si.c_id and s_id = '0001'
ORDER BY sem_no desc
LIMIT 1;
请注意使用正确的ANSI连接语法。另请注意表别名的使用,这使查询更容易阅读。
答案 1 :(得分:0)
试试这个:
SELECT sem_no
FROM course as t1 join
student_info as t2
on t1.c_id = t2.c_id
WHERE t2.s_id = '0001'
ORDER BY sem_no desc
LIMIT 1;
答案 2 :(得分:0)
从mysql中选择时,您可以按升序或降序排序。提升将是1-10例如。下降将是10-1。所以
SELECT distinct sem_no FROM course.student_info
WHERE course.c_id=student_info.c_id and s_id='0001' ORDER BY sem_no desc LIMIT 1;
会返回最后一行,只返回最后一行。