0

学校から課題があります

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]

クエリを解決する別の方法がある場合は、ここで共有してください

*そのコードが誰かにとって重要でありますように

4

2 に答える 2

3

あなたの現在のWHERE句は検索不能です。範囲クエリとして書き直す

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

インデックスを使用できることを意味します。

于 2012-11-17T11:43:31.970 に答える
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台無しにしません)。WHEREJOIN

最近のほとんどのまともなデータベース エンジンは、これをサポートするはずです。

于 2012-11-17T11:38:26.213 に答える