ログイン
問題11

JOIN句、ON句を使ってテーブルを結合させてみよう!

これまで使用してきた家計簿テーブルには、実は問題があります。 本格的にデータベースを活用する場合、「家計簿テーブル」と「費目テーブル」に分けるのがオーソドックスです。 テーブルを分けた場合の結合方法についてしっかり覚えていきましょう。

アイコン画像

問題11:JOIN句、ON句を使ってテーブルを結合させてみよう!

はじめに指定のコードを実行してテーブルを2つに分けます。

「家計簿テーブル」と「費目テーブル」を結合して
期待する画面通りに結果を表示させてみましょう。

テーブル結合にはJOIN句とON句を使用します。

エディターのアイコンあらかじめエディタに書くコード

                USE ninjacode;
DROP TABLE 家計簿;
DROP TABLE 費目;
CREATE TABLE 家計簿 (日付 INT, 費目ID INT, 収入 INT, 支出 INT, 詳細 VARCHAR(255));
CREATE TABLE 費目 (ID INT, 費目名 VARCHAR(20));
INSERT INTO 家計簿 
  (日付, 費目ID, 収入, 支出, 詳細) 
VALUES
  (20221205, 1, 0, 80000, '10月分'),
  (20221205, 2, 0, 10000, '電気・ガス10月分'),
  (20221210, 3, 0, 6000, '恋人とレストラン'),
  (20221216, 4, 0, 1400, '一人ランチ'),
  (20221224, 3, 0, 8000, 'テーマパークへ行った'),
  (20221225, 5, 250000, 0, '11月分');
INSERT INTO 費目 
  (ID, 費目名) 
VALUES
  (1, '家賃'),
  (2, '光熱費'),
  (3, '交際費'),
  (4, '食費'),
  (5, '給料');
¥SQL¥
              

ブラウザのアイコン期待する画面

解答の見本画像

タグアイコン解答ソースコード

              USE ninjacode;
SELECT 日付, 費目名, 詳細, 収入, 支出 
FROM 家計簿
JOIN 費目
ON 家計簿.費目ID = 費目.ID
¥SQL¥
            

コメントのアイコン解説

テーブルを結合させる場合の構文はこのようになります。
SELECT 選択列リスト ※両テーブルの列を指定可能
FROM テーブル1
JOIN テーブル2
ON 両テーブルの結合条件

JOIN句によって家計簿テーブルに費目テーブルが結合され「ID」と「費目名」が参照できるようになります。
また、家計簿テーブルのどの行をつなぐかはON句の結合条件で指定します。
ログインして解答を見る

コメントのアイコン補足

結合は、初心者が特に躓きやすいポイントです。
DBMSがどのように結合処理をするのか、しっかりイメージができるようになれば
よりうまくデータベースを操作できるようになってきます。
SQLを学ぶなら現役エンジニア監修「甲賀コース」
キャンペーン

閉じる