現場で使えるIT技術のブログ

金融、流通、情報セキュリティプロジェクトなどの開発・運用・保守を経験したIT経験のあるまっちゃんが教えるIT技術者のための技術ブログです。

第3回[データベース]SQL(SELECT文)の副問い合わせ

皆様


こんにちは、まっちゃん先生です。


今回は、SELECT文2回目なので、SELECT文での副問い合わせをご紹介したいと思います。


副問い合わせは、SELECT以外にも、DELETEやUPDATEにも関連するので、

まとめてやってしまおうかなと思いましたが(個々にわけるより投稿が少なくて済むので笑)、なにかとプロジェクトで不便を感じる可能性があるので、別々にしました。


副問い合わせを用いたSELECT文の基本構文はこちらです。


SELECT 項目 FROM テーブル名 WHERE 条件


赤くした部分がテーマで記載した副問い合わせとなります。


たとえば、テーブル名:まっちゃんの定義が日付、金額、商品となる場合、


SELECT DISTINCT
  日付,
  金額,
  商品
FROM
  まっちゃん
WHERE
  日付 <= 昨日 and

        金額 <= 10000


の場合、記載された条件は、

昨日よりも前に10000以下の金額の商品データが重複なしで

取得されます。

※見やすいように、あえてインデントをつけました。


実行結果

赤字となっているデータについては、どちらも条件を満たすが、

データが全項目同じなので、1行(プロジェクトでは1レコードのみと言われることが多い)のみ残った。

黄色については、データがこれのみなので、1行のみ残った。

それ以外は、副問い合わせの条件を満たさないので、2レコードのみ抽出された結果になる。


実際は、もう少し複雑な外部結合を用いた記載であることが多いが、

今のところ、そのような要望はないと思うので、あればやります^^


まずは、副問い合わせの基本はこのような書き方となることを、

消化しましょう。