SQL QUERY用于向学生展示他们在1993年出生的地方,11

时间:2012-11-17 11:34:02

标签: sql

我的学校有任务

请显示1993年11月出生的学生姓名

select 
    x.[5_name] 
from
    [5Student] x, [5Birthday] y 
where 
    YEAR(y.[5_date]) = '1993' 
    and MONTH(y.[5_date]) = '11' 
    and x.[5_nim] = y.[5_student]

如果您有其他解决方法,请在此处分享

*该代码可能对某人很重要

2 个答案:

答案 0 :(得分:3)

您当前的WHERE条款无法解决。重写为范围查询

WHERE y.[5_date] >= { d '1993-11-01' } AND  y.[5_date] < { d '1993-12-01' }

表示可以使用索引。

答案 1 :(得分:2)

您没有说您使用的数据库引擎(SQL =结构化查询语言 - 只是语言,而不是产品) - 但我建议始终使用新的ANSI标准JOIN语法(而不是仅列出要使用的以逗号分隔的表列表):

select 
    x.[5_name] 
from
    [5Student] x
inner join
    [5Birthday] y ON x.[5_nim] = y.[5_student]
where 
    YEAR(y.[5_date]) = '1993' 
    and MONTH(y.[5_date]) = '11' 

使您加入的内容更清晰,并将其所属的JOIN条件移至JOIN语句(并且不会使WHERE条件与JOIN条件混乱条件)。

现在几乎任何体面的数据库引擎都应该支持