Learning site for website creation

WHEREとHAVINGの違い

公開日:2021年07月30日 更新日:2022年09月29日
  • WHERE:「GROUP BY」の前に記述する条件
  • HAVING:「GROUP BY」の後に記述する条件

「GROUP BY」を使用しなければ以下のSQL文はどちらも同じ結果を返します。

select * from テーブル名 where id=2;
select * from テーブル名 having id=2;

SELECT文は記述順に注意

SELECT文は「SELECT」「FROM」「WHERE」「LIMIT」等を組み合わせて記述します。これらのキーワードの記述順を間違えるとエラーになります。

SQLの記述順

  1. SELECT:フィールドを指定
  2. FROM:テーブルを指定
  3. JOIN:結合するテーブルを指定
  4. ON:結合する条件
  5. WHERE:条件でレコードを絞り込み
  6. GROUP BY:指定したフィールドでグループ化
  7. HAVING:グループ化後のテーブルに対して条件を指定して絞り込み
  8. ORDER BY:フィールドを指定して並び替え
  9. LIMIT:取得するレコードを制限

SELECT文の処理順

  1. FROM:テーブルを指定
  2. ON:結合する条件
  3. JOIN:結合するテーブルを指定
  4. WHERE:条件でレコードを絞り込み
  5. GROUP BY:指定したフィールドでグループ化
  6. HAVING:グループ化後のテーブルに対して条件を指定して絞り込み
  7. SELECT:フィールド指定
  8. ORDER BY:フィールドを指定して並び替え
  9. LIMIT:取得するレコードを制限