SQL所有比最年轻的老师年长的学生?

时间:2014-03-11 14:59:03

标签: mysql sql

我希望所有比最年轻老师都年长的学生。

select s_id, s_firstname, l_firstname from s_schueler where s_gebdatum<(select l_gebdatum from l_lehrer where l_gebdatum.min);

enter image description here

3 个答案:

答案 0 :(得分:1)

尝试此查询:

select 
s_id,
s_firstname,
l_firstname -- this column should not appear here since is not a join 
from s_schueler
where 
s_gebdatum >(select min(l_gebdatum) from l_lehrer);

您错过了min()功能! - 这将找回最年轻的老师。

答案 1 :(得分:1)

这应该有效:

select s_id, s_firstname
from s_schueler 
where s_gebdatum > (select max(l_gebdatum) from l_lehrer); 

假设l_gebdatum是一个年龄。我相信你还需要一个比符号更大的符号。

答案 2 :(得分:0)

试试这个(未经测试):

SELECT
    s.s_id, s.s_firstname, l.l_firstname
FROM s_schueler s
INNER JOIN (
    /* Select the youngest teacher, and alias the columns
       here in a subtable called "l" */
    SELECT MAX(l_gebdatum), l_firstname from l_lehrer GROUP BY l_firstname
) l

子查询的问题在于,您没有使查询的其余部分可以使用教师的名字。因此我添加了一个连接作为子选择;它不应该需要ON子句,因为MAX强制它只有一行。