序文
トップ選択n個の文の形式は、その機能を実行するために、MySQLの制限を使用する最初のいくつかのレコードがチェックしますが、この構文は、MySQLではありません得ることができます。
LIMIT句は、指定された数のレコードを返すSELECT文を強制するために使用することができます。LIMITは、1つのまたは2つの数値パラメータを取ります。引数は整数定数でなければなりません。
二つのパラメータを考えると、最初のパラメータは、第二引数は、行の最大数が返さ指定し、最初のオフセット行が返さ指定します。
年齢古い学生テーブル
二つのテーブル、学生テーブル(学生)の基本的な情報があり、次のようです
対象とスコアテーブル(グレード)
3を照会
元数学リスト(フィールドを表示するために必要な学生ID、名前、件名、結果)3人の学生
*選択
グレードから
where kemu = '数学'
スコア順
DESC
上限3
まず学生・テーブルクエリと組み合わせて、制限することにより、第1の3つのレコードを削除します
a.id、a.name、b.kemu、b.scoreを選択
学生aから、グレードB
どこa.id = b.id
そしてkemu =「数学」
スコア順
DESC
上限3
最初のクエリ2-3のレコード
唯一のライトバック限界整数n場合、すなわち、クエリの最初のn行は、二つの整数nおよびm、番号をN、最初の(0から始まる)開始キューをチェックアウトされている後者の場合、第二でありますmは統計の総数であります
第2条第3記録、その後、出発点が1、2-3、2つのレコードを持って、それから2番目のパラメータは2であります
a.id、a.name、b.kemu、b.scoreを選択
学生aから、グレードB
どこa.id = b.id
そしてkemu =「数学」
スコア順
DESC
リミット1、2
注:制限が取られ、同じランクの数に基づいて、レコードを考えることができます。5-14の記録は、その限度を取る場合は4 10
クエリの第三の背後にあるすべての
a.id、a.name、b.kemu、b.scoreを選択
学生aから、グレードB
どこa.id = b.id
そしてkemu =「数学」
スコア順
DESC
上限3、10000
注意:上限3に書き込まれた情報の一部を、-1 -1最大によってコード、これは間違っている、ソリューションを文句を言うでしょう。ただ、非常に大きな整数を書きます
英語コース80未満の人
学生ID番号、名前、件名、スコアを示す統計英語コース80個の未満のポイントを、
SELECT a.id、a.name、b.kemu、b.score
学生A、グレードBから
WHERE a.id = b.id
AND b.kemu = '英语'
AND <80をb.score
統計は、優れた、一般的には、各コースに合格しません
コースを失敗しました(<60)船(60 <= xと<= 80)優れた(> 80)
SELECT b.kemu、
不として及格(WHEREスコア<60とkemu = b.kemuグレードからのカウント(*)を選択)
(グレードからのカウント(*)を選択WHERE 60と80とkemu = b.kemu間のスコア)として一般、
(WHEREスコア> 80とkemu = b.kemuグレードからのカウント(*)を選択)优秀
グレードBから
kemu BY GROUP
2前に各被験者の結果を探します
2つのディスプレイID、名前、件名、スコアの前に各被験者の結果を探します
プレスクエリーサブジェクトとスコア
SELECT t1.id、t1.kemu、t1.score
グレードT1から
DESC t1.score t1.kemu BY ORDER、
そして、第2節あたりそれぞれのフロントを見つけます
SELECT t1.id、a.name、t1.kemu、t1.score
グレードT1から、学生A
WHERE
(SELECT COUNT(*)グレードT2から
WHERE t1.kemu = t2.kemu AND t2.score> = t1.score
)<= 2
そしてa.id = t1.id
t1.kemu、t1.score BY ORDER
DESC