はじめに
SQL 基礎用語&文法 3 はコチラをクリック願います。
SQLを学んでいく上で、用語等を中心に整理していきます。
ターミナルにて入力する。もしくはSequelProのクエリにて入力するようにしております。
もうすでにご存知の方、省略の仕方等ご存知でしたら、ご教授願います。
検索する編 ちょっと応用 2
- SequelProにて行います。
- テーブルにデータが入っていることを想定する。
複雑なデータ検索
JOIN句
- 指定したそれぞれのテーブルの、カラムの値が一致するデータを結合する。
- JOIN句はFROM句の後に記述し、結合の対象となるテーブルを指定する。
- そしてONの後に、それぞれのテーブル名.カラム名を=で結合する。
-- 式
FROM テーブル1
JOIN テーブル名2 ON テーブル名1.カラム名1 = テーブル名2.カラム名2
-- 実践してみます。
FROM shifts
JOIN users ON shifts.user_id = users.id
--上記のままでは、冗長ですので、各テーブルに別名をつけて短縮する。
--FROMやJOINでテーブル名を指定する際、ついでにそのテーブルの別名も指定する。
--別名は、"shifts"テーブルならs、"users"テーブルならuのように、各テーブル名の頭文字を取ってあげるのが一般的.
FROM shifts s
JOIN users u ON s.user_id = u.id
検索結果を用いた検索
サブクエリ
- ある検索結果を使用して別のSQL文を実行する仕組み
- WHERE句で使用されることが多い。
- SELECT句やFROM句でもサブクエリは使用できる。
--WHERE句でNOT INを使用することでテーブルから、カラムがリストに含まれていない行のみを取得する。
-- 式
SELECT *
FROM テーブル
WHERE カラム NOT IN (リスト)
-- 実践してみます。
SELECT *
FROM users
WHERE id NOT IN (
SELECT DISTINCT user_id
FROM shifts
WHERE date = "2015-07-01"
)
さいごに
日々勉強中ですので、随時更新します。
皆様の復習にご活用頂けますと幸いです。