我希望所有比最年轻老师都年长的学生。
select s_id, s_firstname, l_firstname
from s_schueler
where s_gebdatum<(select l_gebdatum from l_lehrer where l_gebdatum.min);
答案 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
强制它只有一行。