SQLでレコードの引き算を行うにはどうすれば良いの?
EXCEPTってどうやって使うの?
わかりやすく教えてほしい!
こういった疑問にこたえます。
エンジニアの僕がわかりやすく解説します。
EXCEPTの使い方
EXCEPTはレコードの引き算を行う場合に使います。
例えば、次のようなshohinテーブルとshohin2テーブルがあったとします。
shohin_mei | shohin_bunrui | kakaku |
Tシャツ | 衣服 | 1500 |
フライパン | キッチン用品 | 2000 |
鉛筆 | 事務用品 | 100 |
ボールペン | 事務用品 | 150 |
shohin_mei | shohin_bunrui | kakaku |
Tシャツ | 衣服 | 1500 |
まな板 | キッチン用品 | 700 |
包丁 | キッチン用品 | 1000 |
このshohinテーブルのレコードからshohin2テーブルのレコードを引いたものを得たい場合、SQLは次のようになります。
SELECT shohin_mei, shohin_bunrui, kakaku
FROM shohin
EXCEPT
SELECT shohin_mei, shohin_bunrui, kakaku
FROM shohin2;
実行結果
shohin_mei | shohin_bunrui | kakaku |
フライパン | キッチン用品 | 2000 |
鉛筆 | 事務用品 | 100 |
ボールペン | 事務用品 | 150 |
引き算なのでSQLの記述の順番で結果は異なるということです。
使うときはどちらのテーブルからレコードを引くか注意しましょう。
EXCEPTの使い方まとめ
解説の内容をまとめます。
- EXCEPTはレコードの引き算を行う場合に使う
- SQLの記述順に注意する
以上、お疲れ様でした。
コメント