新・SQL入門編14ドリルのサムネイル
サブクエリをIN演算子と使う 3 MySQL編(paizaランク C 相当)

問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!

問題

下記の問題をプログラミングしてみよう!

注文履歴がordered テーブルに、注文内容がordered_menu テーブルに、メニューがmenu テーブルに保存されています。
テーブルの形式は次の通りです。

ordered

#カラム名データ型内容
1ordered_id整数 (int)注文の通し番号
2datetime日時 (datetime)注文がおこなわれた日時
3bill整数 (int)注文の合計金額


ordered_menu
#カラム名データ型内容
1ordered_id整数 (int)注文の通し番号
2menu_id整数 (int)メニュー番号
3num整数 (int)メニューの注文数
4sum整数 (int)小計


menu
#カラム名データ型内容
1menu_id整数 (int)メニュー番号
2category_id整数 (int)カテゴリ番号
3name文字列 (varchar)メニュー名
4price整数 (int)価格



`ア`から始まるメニューを含む注文をしたレコードを、orderedテーブルから全て取得してください。
デフォルトコードの穴埋め部分に適切なサブクエリを記述してください。

ヒント


WHERE カラム名 IN (サブクエリ): カラム名 カラムの値が サブクエリ テーブルのいずれかであるレコードを絞り込むことができる
・IN演算子と共に使うサブクエリは、単一カラムで複数行の値を返すことができる
WHERE カラム名 LIKE 値%: カラム名 カラムの値が で始まるレコードを絞り込むことができる

・サブクエリの中にサブクエリを書くこともできます。
・サブクエリ内の処理は「サブクエリをIN演算子と使う 1」の全文とほとんど同じですが、IN演算子と使うために少し変える必要があります。

入力例1
ordered テーブル
ordered_iddatetimebill
12021-12-17 9:31200
22021-12-17 9:46250
32021-12-17 10:91050
.........
ordered_menu テーブル
ordered_idmenu_idnumsum
1141200
2211250
381350
............
menu テーブル
menu_idcategory_idnameprice
11ハンバーガー200
21ハンバーガー250
31ハンバーガー300
............
出力例1
ordered_id datetime bill
9 2021-12-17 10:40:00 700
13 2021-12-17 10:56:00 250
14 2021-12-17 10:59:00 1150
...

問題一覧へ戻る

  1. paizaトップ
  2. レベルアップ問題集
  3. 新・SQL入門編14ドリル(言語選択)
  4. 問題一覧 MySQL編
  5. サブクエリをIN演算子と使う 3 MySQL編
ページの先頭へ戻る