見出し画像

【SQL】JOINの使い方とよくあるエラーを例文を用いて解説(練習問題あり)

JOINは複数のテーブルを結びつける際に使う関数です。
JOINをするには、同じ条件のカラムが両テーブルに存在している
ことが必要です。
JOINはSQLを勉強する上で、ぶつかる大きな壁の一つです。
そんなJOIN句を初心者でも理解しやすいよう、例題を用いて、徹底解説していきます。

JOINの基本構文

JOIN句は以下の構文を使うことで、テーブルを結びつけることができる。

SELECT
 カラム
FROM
 テーブル 1
JOIN
 テーブル 2
ON
 1.カラム = 2.カラム

FROMで指定したテーブルとJOINするテーブルを結びつける際、ONで同条件のカラムをイコール「=」で結びつけることで、JOINが完了される。

例題に用いるデータテーブル

上の図をJOINしたい場合は、

SELECT
 *
FROM
 基本 a
JOIN
 書籍情報 b
ON
 a.書籍名 = b.書籍

とクエリーを書くことで以下の結果を抽出できる。

例題の結果

テーブル名の後の、aやbは、半角スペースを空けて文字列を指定している。
onで結びつける際の簡略化に用いるといい。

JOINには4種類あるが、今回はもっとも用いることが多いinner join のみを解説にしている。
他のJOINに関しては、参考文献を貼っておくため、ぜひ確認してもらいたい。

4種類のJOIN

JOINの練習問題

練習問題を通じて、実践的にJOINの用法を理解していく。

練習問題に用いるデータテーブル

練習問題1 : 「基本テーブルと、書籍情報テーブルをJOINして、『id,書籍名, 出版社,発行部数』を抽出しなさい」

まずは、JOINの用法を確認できる練習問題だ。
回答は以下である。

SELECT
 id,
 a.書籍名,
 出版社,
 発行部数
FROM
 基本 a
JOIN
 書籍情報 b
on
 a.書籍名 = b.書籍

「a.書籍名」と指定することで、どのテーブルからどのカラムを抜き出すのかをサーバーへ明確に伝えることができる。

練習問題2 : 「基本テーブルと、書籍情報テーブルをJOINして、『発行部数5000以上の書籍数」を抜き出しなさい

次は過去に学んだ、count文や、where文を組み合わせた問題だ。

count文やwhere文はこちらから復習できる。

回答は以下である。

SELECT
 count(id) as total
FROM
 基本 a
JOIN
 書籍情報 b
on
 a.書籍名 = b.書籍
where
 発行部数 >= 5000

結果は以下のように抽出される。

JOINでよくあるエラーと解消法

JOINでよく起こるエラーと、その解消法を解説していく。

ONを書き忘れる、ONで指定するカラムが揃っていないケース

JOINでは、基本的にonで同じ条件のカラムを指定しないと、結びつけることができない。

上のテーブル例で、

on
 a.id = b.書籍名

と指定した場合、二つのカラムは違う内容が入っているために正しくJOIN
されない。
そのため、エラーが出た場合には、カラムが同じ内容のものか確認してもらいたい。


最後に自己紹介

はじめまして、ニューズピックス(https://newspicks.com/)でマーケターをしている平野佑樹です。
普段は、JobPicksというジョブ型キャリアを支援するWebサービス(https://job.newspicks.com/)を運営しており、

  • SQLやGoogle Analyticsを用いた分析

  • TwitterをはじめとしたSNS運用(ショート動画にも挑戦予定)

  • メールマガジン運用

  • Google Optimizeなどを用いたA/Bテスト

  • Search Consoleを用いてコンテンツSEOや開発に関わるSEO施策

など、幅広く業務を担当しています。
マーケターの業務を後押しするtipsをnoteにて発信しております。
(ぜひ、いいねや拡散お願いいたします🙇)

ぜひ、フォローや興味持っていただいた方は、(https://twitter.com/enterrocken)にDMいただけますと幸いです!


この記事が気に入ったらサポートをしてみませんか?