SlideShare a Scribd company logo
1 of 9
1
0からのプログラミング講座
SQL
© 株式会社HEART QUAKE
本文書のいかなる部分をも、事前の許可なく複写したり転送したりすることはできません。
2
Copyright (c) 株式会社HEART QUAKE All right received .
テーブル構成
 どの顧客が、どの商品を、買っているかを記憶する
顧客管理データベースを事例として考える
 原則的として、1つのテーブルには1つの意味になるように
する(≒第3正規形)
前提条件
取引
テーブル
製品
テーブル
顧客
テーブル
顧客ID email
1 tanaka@
2 sato@
取引ID 顧客ID 製品ID 個数
1 1 1 4
2 1 2 4
3 2 1 10
製品ID 名前
1 バスタオル
2 フェイスタオル
3
Copyright (c) 株式会社HEART QUAKE All right received .
テーブル構造と、テーブル間の関係
consumer_id
顧客ID
name
名前
email
メールアドレス
tel
電話番号
address
住所
1 千葉順 chiba@hea 0801292XX 東京都世田
2 室谷次郎 muroya@h 044542XX 神奈川県川
deal_id
取引ID
consumer_id
顧客ID
product_id
商品ID
count
個数
delivery_flg
配送フラグ
1 1 4 10 0
2 2 3 2 1
3 2 4 1 0
product_id
商品ID
product_name
商品名
price
単価
3 バスタオル 4,200
4 フェイスタオル 1,050
連番
連番
連番
0 = 未配送
1 = 配送済み
同じ意味の値
同じ意味の値
consumer_tbl (顧客テーブル)
deal_tbl (取引テーブル)
product_tbl (商品テーブル)
4
Copyright (c) 株式会社HEART QUAKE All right received .
複数テーブルからのレコードの抽出 (1/6)
 自分が購入をした
全ての製品の製品名を知りたいという場合
 このSQLでは 自分が申込みした製品のproduct_idは取得でき
るが、製品名は取得できない。
- 製品名はproduct_tblで管理されているため
product_id product_name price
1 XXX 3000
2 YYY 7000
product_tbl
deal_id consumer_id product_id
1 1 2
3 2 3
deal_tbl
SELECT product_id FROM deal_tbl
WHERE consumer_id = 1;
ケーススタディ
5
Copyright (c) 株式会社HEART QUAKE All right received .
複数テーブルからのレコードの抽出 (2/6)
 複数のテーブルからレコードの抽出する
SELECT product_tbl.product_name FROM deal_tbl, product_tbl
WHERE deal_tbl.product_id = product_tbl.product_id
AND deal_tbl.consumer_id = 1;
どこから
どんな条件で
抽出する
どこで連結するか
同じ製品を表す
product_id product_name price
1 XXX 3000
2 YYY 7000
product_tbl deal_tbl
deal_id consumer_id product_id
1 1 2
3 2 3
6
Copyright (c) 株式会社HEART QUAKE All right received .
複数テーブルからのレコードの抽出 (3/6)
1. 複数のテーブル(Excelでいうところのシート)にまたがって記録され
ているデータを
deal_tblのproduct_idとproduct_tblのproduct_idは、同じ製品を表しています。
SELECT product_tbl.product_name FROM deal_tbl, product_tbl
WHERE deal_tbl.product_id = product_tbl.product_id
AND deal_tbl.consumer_id = 1;
product_id product_name price
1 XXX 3000
2 YYY 7000
product_tbl
deal_id consumer_id product_id
1 1 2
3 2 3
deal_tbl
7
Copyright (c) 株式会社HEART QUAKE All right received .
複数テーブルからのレコードの抽出 (4/6)
2. ひとつのレコードを示す列を連結点にしてて合体させ、
ひとつのテーブルのようになりました。
deal_tbl.
deal_id
deal_tbl.
consumer_id
deal_tbl.
product_id
product_tbl.
product_id
product_tbl.
product_name
product_tbl.
price
1 1 2 2 YYY 7000
3 2 3 3 ZZZ 1000
deal_tbl + product_tbl
SELECT product_tbl.product_name FROM deal_tbl, product_tbl
WHERE deal_tbl.product_id = product_tbl.product_id
AND deal_tbl.consumer_id = 1;
8
Copyright (c) 株式会社HEART QUAKE All right received .
複数テーブルからのレコードの抽出 (5/6)
3. 条件句を追加して、目的のレコードを抽出する
SELECT product_tbl.product_name FROM deal_tbl, product_tbl
WHERE deal_tbl.product_id = product_tbl.product_id
AND deal_tbl.consumer_id = 1;
deal_tbl.
deal_id
deal_tbl.
consumer_id
deal_tbl.
product_id
product_tbl.
product_id
product_tbl.
product_name
product_tbl.
price
1 1 2 2 YYY 7000
3 2 3 3 ZZZ 1000
deal_tbl + product_tbl
9
Copyright (c) 株式会社HEART QUAKE All right received .
SELECT product_tbl.product_name FROM deal_tbl, product_tbl
WHERE deal_tbl.product_id = product_tbl.product_id
AND deal_tbl.consumer_id = 1;
複数テーブルからのレコードの抽出 (6/6)
 複数のテーブルにまたがったデータの抽出を行う場合の注意
- 列を指定する際には、
「なんのテーブルの」(ドット)「なんの列」と指定する
product_tbl「の」product_iddeal_tbl「の」product_id

More Related Content

More from Jun Chiba

図形伝達ゲーム「グラコミ」
図形伝達ゲーム「グラコミ」図形伝達ゲーム「グラコミ」
図形伝達ゲーム「グラコミ」Jun Chiba
 
傾聴力を高めるビジネスゲーム「傾聴チャレンジ」
傾聴力を高めるビジネスゲーム「傾聴チャレンジ」傾聴力を高めるビジネスゲーム「傾聴チャレンジ」
傾聴力を高めるビジネスゲーム「傾聴チャレンジ」Jun Chiba
 
無料アイスブレイクスライドサンプル
無料アイスブレイクスライドサンプル無料アイスブレイクスライドサンプル
無料アイスブレイクスライドサンプルJun Chiba
 
ストレスマネジメント体験ゲーム「ストマネ」
ストレスマネジメント体験ゲーム「ストマネ」ストレスマネジメント体験ゲーム「ストマネ」
ストレスマネジメント体験ゲーム「ストマネ」Jun Chiba
 
ベストチームオンライン説明スライド
ベストチームオンライン説明スライドベストチームオンライン説明スライド
ベストチームオンライン説明スライドJun Chiba
 
死の疑似体験ワーク 対面版
死の疑似体験ワーク 対面版死の疑似体験ワーク 対面版
死の疑似体験ワーク 対面版Jun Chiba
 
地図作成ゲーム「ジグソータウン」説明資料
地図作成ゲーム「ジグソータウン」説明資料地図作成ゲーム「ジグソータウン」説明資料
地図作成ゲーム「ジグソータウン」説明資料Jun Chiba
 
プロジェクトテーマパーク説明資料
プロジェクトテーマパーク説明資料プロジェクトテーマパーク説明資料
プロジェクトテーマパーク説明資料Jun Chiba
 
死の疑似体験ワーク(対面版)説明資料
死の疑似体験ワーク(対面版)説明資料死の疑似体験ワーク(対面版)説明資料
死の疑似体験ワーク(対面版)説明資料Jun Chiba
 
ヘリウムリング&フープリレー
ヘリウムリング&フープリレーヘリウムリング&フープリレー
ヘリウムリング&フープリレーJun Chiba
 
世界記録を目指すマシュマロチャレンジ
世界記録を目指すマシュマロチャレンジ世界記録を目指すマシュマロチャレンジ
世界記録を目指すマシュマロチャレンジJun Chiba
 
相互理解ワークショップ、内定者懇親会で使えるワークスタイルトランプ
相互理解ワークショップ、内定者懇親会で使えるワークスタイルトランプ相互理解ワークショップ、内定者懇親会で使えるワークスタイルトランプ
相互理解ワークショップ、内定者懇親会で使えるワークスタイルトランプJun Chiba
 
ハラスメント研修用ワーク「ハラスメントフラグ」
ハラスメント研修用ワーク「ハラスメントフラグ」ハラスメント研修用ワーク「ハラスメントフラグ」
ハラスメント研修用ワーク「ハラスメントフラグ」Jun Chiba
 
チームビルディングに効果的な楽しく学びのあるゲーム12選+α
チームビルディングに効果的な楽しく学びのあるゲーム12選+αチームビルディングに効果的な楽しく学びのあるゲーム12選+α
チームビルディングに効果的な楽しく学びのあるゲーム12選+αJun Chiba
 
ロジカルシンキング研修用パワーポイント資料の無料サンプル
ロジカルシンキング研修用パワーポイント資料の無料サンプルロジカルシンキング研修用パワーポイント資料の無料サンプル
ロジカルシンキング研修用パワーポイント資料の無料サンプルJun Chiba
 
ビジネスマナー研修用パワーポイント資料無料サンプル版
ビジネスマナー研修用パワーポイント資料無料サンプル版ビジネスマナー研修用パワーポイント資料無料サンプル版
ビジネスマナー研修用パワーポイント資料無料サンプル版Jun Chiba
 
クイズ型レクリエーション「みんなのクイズ」
クイズ型レクリエーション「みんなのクイズ」クイズ型レクリエーション「みんなのクイズ」
クイズ型レクリエーション「みんなのクイズ」Jun Chiba
 
ドミノレンタル
ドミノレンタルドミノレンタル
ドミノレンタルJun Chiba
 
防災ロゲイニングカード
防災ロゲイニングカード防災ロゲイニングカード
防災ロゲイニングカードJun Chiba
 
危機管理コンセンサスゲーム「船長の決断」カード版
危機管理コンセンサスゲーム「船長の決断」カード版危機管理コンセンサスゲーム「船長の決断」カード版
危機管理コンセンサスゲーム「船長の決断」カード版Jun Chiba
 

More from Jun Chiba (20)

図形伝達ゲーム「グラコミ」
図形伝達ゲーム「グラコミ」図形伝達ゲーム「グラコミ」
図形伝達ゲーム「グラコミ」
 
傾聴力を高めるビジネスゲーム「傾聴チャレンジ」
傾聴力を高めるビジネスゲーム「傾聴チャレンジ」傾聴力を高めるビジネスゲーム「傾聴チャレンジ」
傾聴力を高めるビジネスゲーム「傾聴チャレンジ」
 
無料アイスブレイクスライドサンプル
無料アイスブレイクスライドサンプル無料アイスブレイクスライドサンプル
無料アイスブレイクスライドサンプル
 
ストレスマネジメント体験ゲーム「ストマネ」
ストレスマネジメント体験ゲーム「ストマネ」ストレスマネジメント体験ゲーム「ストマネ」
ストレスマネジメント体験ゲーム「ストマネ」
 
ベストチームオンライン説明スライド
ベストチームオンライン説明スライドベストチームオンライン説明スライド
ベストチームオンライン説明スライド
 
死の疑似体験ワーク 対面版
死の疑似体験ワーク 対面版死の疑似体験ワーク 対面版
死の疑似体験ワーク 対面版
 
地図作成ゲーム「ジグソータウン」説明資料
地図作成ゲーム「ジグソータウン」説明資料地図作成ゲーム「ジグソータウン」説明資料
地図作成ゲーム「ジグソータウン」説明資料
 
プロジェクトテーマパーク説明資料
プロジェクトテーマパーク説明資料プロジェクトテーマパーク説明資料
プロジェクトテーマパーク説明資料
 
死の疑似体験ワーク(対面版)説明資料
死の疑似体験ワーク(対面版)説明資料死の疑似体験ワーク(対面版)説明資料
死の疑似体験ワーク(対面版)説明資料
 
ヘリウムリング&フープリレー
ヘリウムリング&フープリレーヘリウムリング&フープリレー
ヘリウムリング&フープリレー
 
世界記録を目指すマシュマロチャレンジ
世界記録を目指すマシュマロチャレンジ世界記録を目指すマシュマロチャレンジ
世界記録を目指すマシュマロチャレンジ
 
相互理解ワークショップ、内定者懇親会で使えるワークスタイルトランプ
相互理解ワークショップ、内定者懇親会で使えるワークスタイルトランプ相互理解ワークショップ、内定者懇親会で使えるワークスタイルトランプ
相互理解ワークショップ、内定者懇親会で使えるワークスタイルトランプ
 
ハラスメント研修用ワーク「ハラスメントフラグ」
ハラスメント研修用ワーク「ハラスメントフラグ」ハラスメント研修用ワーク「ハラスメントフラグ」
ハラスメント研修用ワーク「ハラスメントフラグ」
 
チームビルディングに効果的な楽しく学びのあるゲーム12選+α
チームビルディングに効果的な楽しく学びのあるゲーム12選+αチームビルディングに効果的な楽しく学びのあるゲーム12選+α
チームビルディングに効果的な楽しく学びのあるゲーム12選+α
 
ロジカルシンキング研修用パワーポイント資料の無料サンプル
ロジカルシンキング研修用パワーポイント資料の無料サンプルロジカルシンキング研修用パワーポイント資料の無料サンプル
ロジカルシンキング研修用パワーポイント資料の無料サンプル
 
ビジネスマナー研修用パワーポイント資料無料サンプル版
ビジネスマナー研修用パワーポイント資料無料サンプル版ビジネスマナー研修用パワーポイント資料無料サンプル版
ビジネスマナー研修用パワーポイント資料無料サンプル版
 
クイズ型レクリエーション「みんなのクイズ」
クイズ型レクリエーション「みんなのクイズ」クイズ型レクリエーション「みんなのクイズ」
クイズ型レクリエーション「みんなのクイズ」
 
ドミノレンタル
ドミノレンタルドミノレンタル
ドミノレンタル
 
防災ロゲイニングカード
防災ロゲイニングカード防災ロゲイニングカード
防災ロゲイニングカード
 
危機管理コンセンサスゲーム「船長の決断」カード版
危機管理コンセンサスゲーム「船長の決断」カード版危機管理コンセンサスゲーム「船長の決断」カード版
危機管理コンセンサスゲーム「船長の決断」カード版
 

Recently uploaded

部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員Sadaomi Nishi
 
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一瑛一 西口
 
Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )iwashiira2ctf
 
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計atsushi061452
 
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介Hyperleger Tokyo Meetup
 
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイルLoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイルCRI Japan, Inc.
 
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdfネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdfTakayuki Nakayama
 
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。iPride Co., Ltd.
 
情報を表現するときのポイント
情報を表現するときのポイント情報を表現するときのポイント
情報を表現するときのポイントonozaty
 
Keywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltdKeywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltdkokinagano2
 
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑Akihiro Kadohata
 
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521Satoshi Makita
 
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用KLab Inc. / Tech
 
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアルLoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアルCRI Japan, Inc.
 

Recently uploaded (14)

部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
 
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
 
Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )
 
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
 
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
 
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイルLoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
 
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdfネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
 
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
 
情報を表現するときのポイント
情報を表現するときのポイント情報を表現するときのポイント
情報を表現するときのポイント
 
Keywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltdKeywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltd
 
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
 
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
 
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
 
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアルLoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
 

複数テーブルからのデータ取得

  • 2. 2 Copyright (c) 株式会社HEART QUAKE All right received . テーブル構成  どの顧客が、どの商品を、買っているかを記憶する 顧客管理データベースを事例として考える  原則的として、1つのテーブルには1つの意味になるように する(≒第3正規形) 前提条件 取引 テーブル 製品 テーブル 顧客 テーブル 顧客ID email 1 tanaka@ 2 sato@ 取引ID 顧客ID 製品ID 個数 1 1 1 4 2 1 2 4 3 2 1 10 製品ID 名前 1 バスタオル 2 フェイスタオル
  • 3. 3 Copyright (c) 株式会社HEART QUAKE All right received . テーブル構造と、テーブル間の関係 consumer_id 顧客ID name 名前 email メールアドレス tel 電話番号 address 住所 1 千葉順 chiba@hea 0801292XX 東京都世田 2 室谷次郎 muroya@h 044542XX 神奈川県川 deal_id 取引ID consumer_id 顧客ID product_id 商品ID count 個数 delivery_flg 配送フラグ 1 1 4 10 0 2 2 3 2 1 3 2 4 1 0 product_id 商品ID product_name 商品名 price 単価 3 バスタオル 4,200 4 フェイスタオル 1,050 連番 連番 連番 0 = 未配送 1 = 配送済み 同じ意味の値 同じ意味の値 consumer_tbl (顧客テーブル) deal_tbl (取引テーブル) product_tbl (商品テーブル)
  • 4. 4 Copyright (c) 株式会社HEART QUAKE All right received . 複数テーブルからのレコードの抽出 (1/6)  自分が購入をした 全ての製品の製品名を知りたいという場合  このSQLでは 自分が申込みした製品のproduct_idは取得でき るが、製品名は取得できない。 - 製品名はproduct_tblで管理されているため product_id product_name price 1 XXX 3000 2 YYY 7000 product_tbl deal_id consumer_id product_id 1 1 2 3 2 3 deal_tbl SELECT product_id FROM deal_tbl WHERE consumer_id = 1; ケーススタディ
  • 5. 5 Copyright (c) 株式会社HEART QUAKE All right received . 複数テーブルからのレコードの抽出 (2/6)  複数のテーブルからレコードの抽出する SELECT product_tbl.product_name FROM deal_tbl, product_tbl WHERE deal_tbl.product_id = product_tbl.product_id AND deal_tbl.consumer_id = 1; どこから どんな条件で 抽出する どこで連結するか 同じ製品を表す product_id product_name price 1 XXX 3000 2 YYY 7000 product_tbl deal_tbl deal_id consumer_id product_id 1 1 2 3 2 3
  • 6. 6 Copyright (c) 株式会社HEART QUAKE All right received . 複数テーブルからのレコードの抽出 (3/6) 1. 複数のテーブル(Excelでいうところのシート)にまたがって記録され ているデータを deal_tblのproduct_idとproduct_tblのproduct_idは、同じ製品を表しています。 SELECT product_tbl.product_name FROM deal_tbl, product_tbl WHERE deal_tbl.product_id = product_tbl.product_id AND deal_tbl.consumer_id = 1; product_id product_name price 1 XXX 3000 2 YYY 7000 product_tbl deal_id consumer_id product_id 1 1 2 3 2 3 deal_tbl
  • 7. 7 Copyright (c) 株式会社HEART QUAKE All right received . 複数テーブルからのレコードの抽出 (4/6) 2. ひとつのレコードを示す列を連結点にしてて合体させ、 ひとつのテーブルのようになりました。 deal_tbl. deal_id deal_tbl. consumer_id deal_tbl. product_id product_tbl. product_id product_tbl. product_name product_tbl. price 1 1 2 2 YYY 7000 3 2 3 3 ZZZ 1000 deal_tbl + product_tbl SELECT product_tbl.product_name FROM deal_tbl, product_tbl WHERE deal_tbl.product_id = product_tbl.product_id AND deal_tbl.consumer_id = 1;
  • 8. 8 Copyright (c) 株式会社HEART QUAKE All right received . 複数テーブルからのレコードの抽出 (5/6) 3. 条件句を追加して、目的のレコードを抽出する SELECT product_tbl.product_name FROM deal_tbl, product_tbl WHERE deal_tbl.product_id = product_tbl.product_id AND deal_tbl.consumer_id = 1; deal_tbl. deal_id deal_tbl. consumer_id deal_tbl. product_id product_tbl. product_id product_tbl. product_name product_tbl. price 1 1 2 2 YYY 7000 3 2 3 3 ZZZ 1000 deal_tbl + product_tbl
  • 9. 9 Copyright (c) 株式会社HEART QUAKE All right received . SELECT product_tbl.product_name FROM deal_tbl, product_tbl WHERE deal_tbl.product_id = product_tbl.product_id AND deal_tbl.consumer_id = 1; 複数テーブルからのレコードの抽出 (6/6)  複数のテーブルにまたがったデータの抽出を行う場合の注意 - 列を指定する際には、 「なんのテーブルの」(ドット)「なんの列」と指定する product_tbl「の」product_iddeal_tbl「の」product_id