【SQL入門】表副問い合わせ


本項では表副問い合わせについて説明していきます。


表副問い合わせ

副問い合わせとはの記事でご紹介しましたが、副問い合わせには表副問い合わせというものがあります。

単一行副問い合わせや複数行副問い合わせでは、検索結果は行に対して行われましたが、

表副問い合わせは検索結果がn行n列の表となります。(nは複数)

利用できる箇所としては、SELECT文のFROM句やINSERT文などに記述できます。

 

それでは実際に表副問い合わせを使ってデータを抽出してみましょう。

今回は以下テーブル(テーブル名:teachers)を使用します。


SELECT *

FROM teachers ;


FROM句での表副問い合わせ

FROM句での表副問い合わせは、内側のSELECT文に抽出したいカラム名を記述します。

複数のカラムを記述したい場合はカンマ(,)で区切ります。1つ注意しなければならないのが、サブクエリを書いてそのまま実行するとエラーになることです。

副問い合わせでテーブルを作成した後は、そのテーブルにasで名前をつける必要があるのです。


SELECT *

FROM (SELECT id,name,score FROM teachers WHERE score >= 70) as SUB;

副問い合わせで作成したテーブルにasで「SUB」という名前をつけたので特に問題なくデータを表示できました。

では、asで名前をつけないとどうなるでしょうか?


SELECT *

FROM (SELECT id,name,score

FROM teachers

WHERE score >= 70) ;

上記構文はasを抜かした以外は同じです。このようにテーブルに名前をつけないとエラーとなり、データを抽出できないので名前のつけ忘れに気をつけましょう。


今回の学習ポイント

・表副問い合わせの検索結果はn行n列の表形式になる。

・副問い合わせで作成したテーブルには名前をつける。


練習問題

問題として使用するデータは「SQL練習問題」のものを使用しています。

以下からダウンロード可能です。

以下のようにしてworldcup2014データベースを作成し、インポートしてください。

※worldcup2014.zip解凍してできるworldcup2014.sqlファイルをCドライブ直下に配置した場合。

worldcup2014.sql


CREATE DATABASE worldcup2014;

USE worldcup2014;

Source C</span>/worldcup2014.sql

 

  1. 表副問い合わせを使ってグループAのランキング合計を表示する。(使用するテーブル:countries)
答え

 

以上、表副問い合わせについてでした。

  • このエントリーをはてなブックマークに追加

PAGE TOP