STERFIELD

テーブル結合

テーブル結合

1つのデータベースに、それぞれが異なる情報を持つ複数のテーブルを保持し、
それぞれのテーブルに同じフィールドがあれば、それを利用してテーブル結合してデータを取得する事が出来ます。

今回はサンプルでcustomersテーブルとshopテーブルを利用して説明します。

先に以下の内容でテーブルを作りました。

customersテーブル
idnameaddressproducts
1 poe shinjyuku iphone5
2 su shinagawa iphone3
3 hnin ikebukuro iphone5
4 ei ikebukuro iphone5

shopテーブル
idproductspricecode
1 iphone 30000 IP01
2 iphone4 40000 IP02
3 iphone4S 42000 IP03
4 iphone5 50000 IP04

customersテーブのproductsというフィールドとshopテーブルのproductsフィールドを一致して、
現在販売されている商品とお客さんの情報を取得できます。

以下のようなmysql文で取得できます。

結果の表示です。

idnameaddressproductsidproductspricecode
2 su shinagawa iphone4 2 iphone4 40000 IP02
1 poe shinjyuku iphone5 4 iphone5 50000 IP04
3 hnin ikebukuro iphone5 4 iphone5 50000 IP04
4 ei ikebukuro iphone5 4 iphone5 50000 IP04

NATURAL JOIN

-NATURAL JOINは2つのテーブルを取り、同じ名前を持つ列を
自動的に結合させます。
サンプル :

結果表示:

idproductsnameaddresspricecode
2iphone4sushinagawa40000IP02
4iphone5eiikebukuro50000IP04

上記の場合、テーブルの両方に存在するカラムは「id」と「products」カラムだけですので「id」と「products」カラムを使って結合が行われます。

JOIN…..ON

2つのテーブルの結合させる列を指定したい場合には、JOIN…..ON構造を次のように使用します。
サンプル:

※結果は「SELECT * from customers,shop WHERE customers.products = shop.products;」と同じです。

ASの使用

ASキーワードを利用して、入力にかかる手数を減らしクエリを読みやすくする事も出来ます。
サンンプル:

※結果は「SELECT * from customers,shop WHERE customers.products = shop.products;」と同じです。

Author Profile

著者近影

スターフィールド編集部

SHARE

合わせて読みたい