スーパー注文内容 MySQL編(paizaランク D 相当)
問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
問題
下記の問題をプログラミングしてみよう!
※ この問題集は、動画講座『新・SQL入門編4: テーブルの結合を理解しよう』で学習した内容について反復して練習できるドリルです。分からないことがあれば、動画に戻って復習してみてください。
注文内容がordered_menu テーブルに、メニューがmenu テーブルに、カテゴリがcategory テーブルに保存されています。
テーブルの形式は次の通りです。
ordered_menu
# | カラム名 | データ型 | 内容 |
---|
1 | ordered_id | 整数 (int) | 注文の通し番号 |
2 | menu_id | 整数 (int) | メニュー番号 |
3 | num | 整数(int) | メニューの注文数 |
4 | sum | 整数 (int) | 小計 |
menu
# | カラム名 | データ型 | 内容 |
---|
1 | menu_id | 整数 (int) | メニュー番号 |
2 | category_id | 整数 (int) | カテゴリ番号 |
3 | name | 文字列 (varchar) | メニュー名 |
4 | price | 整数 (int) | 価格 |
category
# | カラム名 | データ型 | 内容 |
1 | category_id | 整数 (int) | カテゴリ番号 |
2 | name | 文字列 (varchar) | カテゴリ名 |
あなたはデータを共有するために注文内容を提出したところ、「数字ばかりでどのようなデータかわからない」と突き返されてしまいました。そこで、あなたはメニュー番号を日本語のメニュー名に置き換え、ついでにカテゴリ名も添えることにしました。
すべての注文内容について、注文の通し番号、カテゴリ名、メニュー名、メニューの注文数、小計をこの順で出力してください。
ヒント
・
FROM テーブル名1 INNER JOIN テーブル名2 ON 条件
:
条件
で
テーブル名1
と
テーブル名2
を内部結合する
・
SELECT カラム名1, カラム名2, ... FROM テーブル名
:
テーブル名
テーブルの
カラム名1
,
カラム名2
, ... カラムを取得することができる
・JOIN句を続けて書くことで3つ以上のテーブルを結合できる
- 出力例1
-
ordered_id name name num sum
1 サイドメニュー チキンナゲット 1 200
2 ドリンク メロンソーダ 1 250
3 バーガー ダブルチーズバーガー 1 350
...
問題一覧へ戻る