ログイン
問題25

EXCEPT演算子で差集合を求めよう

EXCEPTとは「除外する」という意味を持つ英単語です。 最初の検索結果から次の検索結果と重複するものを取り除いて表示させます。

アイコン画像

問題25:EXCEPT演算子で差集合を求めよう

EXCEPT演算子を使って「家計簿」テーブルにはあって「家計簿_過去分」テーブルにはない費目、収入、支出のデータを表示させて下さい。

期待する画面を参考に命令文を書いていきましょう。

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

解答の見本画像

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

              USE ninjacode;
SELECT 費目, 収入, 支出 FROM 家計簿
  EXCEPT
SELECT 費目, 収入, 支出 FROM 家計簿_過去分;
¥SQL¥
            

コメントのアイコン解説

差分を集めた差集合データを表示させるにはEXCEPTを使用します。
構文はUNION演算子と同様に以下のようになります。
SELECT 列名 FROM テーブル名①
EXCEPT
SELECT 列名 FROM テーブル名②

EXCEPTを使用する場合、テーブル①の情報を基準に
テーブル②に書いた情報を参照し差分を表示します。
今回は「家計簿_過去分」テーブルにない情報だけを抽出するので
テーブル①に「家計簿」テーブル②に「家計簿_過去分」テーブルを書きます。
ログインして解答を見る

コメントのアイコン補足

今回MySQLの場合はEXCEPT演算子を使用することが出来ましたが、
Oracle DBなどでは、EXCEPTの代わりにMINUSというものを使います。
使用するデータベースシステムによって記述が異なる場合があるので注意しましょう。
SQLを学ぶなら現役エンジニア監修「甲賀コース」
キャンペーン

閉じる