Blog

テーブル結合

2013.11.20Cat:MySQL プログラマー

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

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

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

customersテーブル

id name address products
1 poe shinjyuku iphone5
2 su shinagawa iphone3
3 hnin ikebukuro iphone5
4 ei ikebukuro iphone5

shopテーブル

id products price code
1 iphone 30000 IP01
2 iphone4 40000 IP02
3 iphone4S 42000 IP03
4 iphone5 50000 IP04

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

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

結果の表示です。

id name address products id products price code
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つのテーブルを取り、同じ名前を持つ列を
自動的に結合させます。
サンプル :

結果表示:

id products name address price code
2 iphone4 su shinagawa 40000 IP02
4 iphone5 ei ikebukuro 50000 IP04

上記の場合、テーブルの両方に存在するカラムは「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

poe

本心でやれば、できないことはない!。。。。。。

» 投稿一覧
  • Launch Cart次世代ECサイト構築システム 初期月額無料
  • LaunchMovie ECに特化した動画制作サービス

Archive

ページTOPへ