情弱エンジニアのなかのblog

一人前のエンジニアになる為のブログです

MySQLの結合について

テーブルとテーブルを結合するにはJOINが必要!

今回はMySQLのJOINを覚えたので使い方を書いていきます。

1.なぜ結合するのか

2.前提条件

3.実際の使い方

1.なぜ結合するのか

まずなぜ結合が必要かといいますと、DBには複数のテーブルが存在していまして、そのテーブルをまたいだ検索を行いたい時などに使えます。

例えば顧客テーブルと商品テーブルがあり、ある商品を買ったお客様だけを抽出したい、などの状況で結合が必要になります。

2.前提条件

では実際に使い方を見ていきましょう。

二つのテーブル、顧客テーブル「customer」と商品テーブル「item」があると仮定します。

「customer」にはidと顧客名と商品テーブルの外部キーが入っています。

id,name,item_id

「item」にはidと商品の種類と商品名が入っているとします。

id,category,name

categoryの内容は[food,book,clothes]だとします、ここでbookを買った顧客を一覧表示したい、となったとします、そこで結合が必要になります。

3.実際の使い方

実際にSQL文を書くときに必要になるのが「JOIN」です。正確には「INNER JOIN」を使うことでテーブルの結合が出来ます。つかい方は

INNER JOIN [結合先テーブル] ON [結合元フィールド] = [結合先フィールド]

と書きます、実際のコードはこうなります。

INNER JOIN item ON customer.item_id = item.id;

そして今回求める処理をするにはこう書きます。

SELECT
    customer.name
FROM
    customer
INNER JOIN 
    item
ON 
    customer.item_id = item.id
WHERE
    item.category = 'book';

これで本を買ったお客様を求めることができます。

ちなみに今回JOINについて参考にさせて頂いたサイトこちらになります。

内部結合(INNER JOIN句) - データの取得 - MySQLの使い方

MySQLはまだまだ分からないことも多いのでもっと勉強します。それでは