我遇到了这个问题,我将在学生表中选择每个课程中最年轻的学生。
SELECT name, lastname, MAX(fdate) as 'Youngest', course
FROM student
GROUP BY course
结果:http://i.imgur.com/9mx5Mfy.png
此查询返回三个课程中的最高日期,但关联的名称是错误的。
这只是MySQL
课程中的一项简单任务,我们不会使用JOINs.
答案 0 :(得分:0)
试试这个:
SELECT s1.name, s1.lastname, s1-fdate
FROM student s1
WHERE NOT EXISTS (
SELECT 'YOUNGEST'
FROM student s2
WHERE s2.course = s1.course
AND s2.fdate > s1.fdate
)
在这个查询中,我想在同一课程(s2.course = s1.course)的学生中检索最年轻的(s2.fdate> s1.fdate)
答案 1 :(得分:0)
如果您不打算使用JOIN,那么您可以使用内部选择
select
A.course_name as "Name",
max(A.day_of_birth) as "Birth date",
(select
student_name
from students
where course_name = A.course_name and day_of_Birth=max(A.day_of_birth) limit 1
) as "who"
from students A
group by A.course_name