SELECT文の基本構文と実行順序

※過去ブログの転記

 

構文記述例

SELECT field1, field2
FROM tableA, tableB AS tblB
LEFT JOIN tableC ON tableC.field3 = tblB.field2
WHERE field1 = 1 AND field2 = 2 AND field4 LIKE '%aaa%'
GROUP BY field1, field2 ASC
ORDER BY field1 DESC, field2 
LIMIT 5 OFFSET 10

*1

構文記述順

  1. SELECT
  2. FROM
  3. JOIN
  4. WHERE
  5. GROUP BY
  6. HAVING
  7. ORDER BY
  8. LIMIT
要点
  • GROUP BY / ORDER BY
    • カラム名 並び順 の形式で書く
      ASC → ascending order 1
      DESC → descending order 2
    • 並び順を省略した場合は昇順になる
  • LIMIT
    • LIMIT 取得件数 OFFSET 開始位置
    • LIMIT 開始位置,取得件数の形式でもOK
    • 0から取得する場合はOFFSETは省略可能
  • 共通
    • WHERE句以外は複数指定するときはカンマで繋ぐ
    • テーブル・カラム名MySQL予約語を使用する場合はバッククォートで囲う3

実行順序

  1. FROM
  2. JOIN
  3. WHERE
  4. GROUP BY
  5. HAVING
  6. SELECT
  7. DISTINCT
  8. ORDER BY
  9. LIMIT
要点
  • ORDER BYで集計してからHAVINGで条件指定するよりWHERE句の時点で抽出した方が良い
  • WHEREではSELECTでのエイリアスは使用できないがORDER BYでは使用できる
  • DISTINCTは実行した結果の中から全ての値が一致する重複したレコードを破棄する
  • GROUP BYは実行した結果を指定されたカラムでグループ化する

  1. アスセンディング

  2. ディスセンディング

  3. MySQL :: MySQL 5.6 リファレンスマニュアル :: 9.3 予約語

*1:テーブル構成や結合は適当です...