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はまだまだ分からないことも多いのでもっと勉強します。それでは