*

SQLのLEFT JOINを実際に実行して視覚的に理解しよう!

公開日: : SQL

medium_11122773785
photo credit: tec_estromberg via photopin cc

こんにちは!基本情報処理試験ではSQLに関する問題を捨てていましたOsamuです。

最初から午後問の1つであるDB系の問題は捨てて、他の問題に集中する事でどうにか合格しました。捨て身です、捨て身の作戦です。しかし、結構時間もギリギリなので1つくらい捨てるのも良い方法かと。

そんな私ですが、最近はSQLに触れる事となりました。SELECT、FROM、WHEREくらいは何だか理解できるのですが、LEFT JOINが中々理解できずに困っておりました。

そんな時に自分でSQLを実行して、FROM、WHEREで出力した場合と、LEFT JOINで出力した場合の2つの出力結果を比較してみると何だかイメージが湧いたので、自分の為にも、そして「LEFT JOINって何だよ!」という私と同じSQL初心者の方の為にも共有しておきましょう!

テストに使用したテーブル

まずは分かりやすく日本語にしておりますが、今回は以下の2つのテーブルを活用しています。

tables

FROM、WHEREで出力した場合

実行したSQL

SELECT * 
FROM kokyaku, uriage
WHERE kokyaku.cd = uriage.cd

実行結果

fromwhere2

如何でしょう。kakakuテーブルの102 BB商事、105 EE商事のデータは当たり前ですが抽出されません。だって両テーブルのcdがイコールである事を抽出条件にしているのですから、当たり前ですね。

LEFT JOINで出力した場合

続いてLEFT JOINを実行してみましょう。

実行したSQL

SELECT * 
FROM kokyaku
LEFT JOIN uriage ON kokyaku.cd = uriage.cd


実行結果

join2

LEFT JOINの場合は、kakakuテーブルの102 BB商事、105 EE商事も抽出されます。uriageテーブルにないデータ部分はnullとなります。

両方の出力結果を比較すると?

2つの出力結果を比較すると以下の通りとなります。

fromwhere-leftjoin

如何でしょうか?LEFT JOINのイメージは理解できましたか?

一度phpMyAdmin辺りを使って、自分で2つの処理を実行してみるとさらに理解が深まるかもしれません。是非試してみてください。

お問い合わせはこちら!

関連記事

medium_389294731 (1)

【Codeigniter】$this->db->where() の第3引数にfalseを指定した時の解説

photo credit: trekkyandy via photopin cc PHPに

記事を読む

small__518053737

codeigniterでselect文にunionを使いたい

select文でunionを使いたいが、調べてみてると普通にできなさそうなので、librar

記事を読む

medium_24124753 (1)

【MySQL】SQLでif文のような条件分岐を行いたいならcase文を使うベシ!!

photo credit: jimw via photopin cc この頃は買い物してい

記事を読む

お問い合わせはこちら!

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

お問い合わせはこちら!

35643
SourceTreeで差分ファイルを抽出

GitのクライアントでSourceTreeを利用する時、コミットの差分

2536_normal_1392167345_phpstudy
第104回 PHP勉強会に参加しました!

昨日「第104回 PHP勉強会@東京」に参加し、メイン発表をしました。

laravel_dev
Windows10にLaravel開発環境を構築

本記事は筆者のノートパソコンにLaravelプロジェクトの開発環境を構

1463577479_XAMPP
複数のXAMPPインストール

Windows環境でPHP開発をする際にXAMPPをインストールするこ

Laravel
Laravel 5.1 プロジェクト作成(インストール)

本記事ではLaravel 5.1 LTSを利用して開発するためにLar

→もっと見る

  • AWS構築 - クラウドアドバイザー
PAGE TOP ↑