【SQL】JOINの使い方とよくあるエラーを例文を用いて解説(練習問題あり)
JOINの基本構文
JOIN句は以下の構文を使うことで、テーブルを結びつけることができる。
FROMで指定したテーブルとJOINするテーブルを結びつける際、ONで同条件のカラムをイコール「=」で結びつけることで、JOINが完了される。
上の図をJOINしたい場合は、
とクエリーを書くことで以下の結果を抽出できる。
テーブル名の後の、aやbは、半角スペースを空けて文字列を指定している。
onで結びつける際の簡略化に用いるといい。
JOINには4種類あるが、今回はもっとも用いることが多いinner join のみを解説にしている。
他のJOINに関しては、参考文献を貼っておくため、ぜひ確認してもらいたい。
JOINの練習問題
練習問題を通じて、実践的にJOINの用法を理解していく。
練習問題1 : 「基本テーブルと、書籍情報テーブルをJOINして、『id,書籍名, 出版社,発行部数』を抽出しなさい」
まずは、JOINの用法を確認できる練習問題だ。
回答は以下である。
「a.書籍名」と指定することで、どのテーブルからどのカラムを抜き出すのかをサーバーへ明確に伝えることができる。
練習問題2 : 「基本テーブルと、書籍情報テーブルをJOINして、『発行部数5000以上の書籍数」を抜き出しなさい
次は過去に学んだ、count文や、where文を組み合わせた問題だ。
count文やwhere文はこちらから復習できる。
回答は以下である。
結果は以下のように抽出される。
JOINでよくあるエラーと解消法
JOINでよく起こるエラーと、その解消法を解説していく。
ONを書き忘れる、ONで指定するカラムが揃っていないケース
JOINでは、基本的にonで同じ条件のカラムを指定しないと、結びつけることができない。
上のテーブル例で、
と指定した場合、二つのカラムは違う内容が入っているために正しく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いただけますと幸いです!