その4)SQLテクニック 副問い合わせと同じ結果を取得 – ざったなぶろぐ
超特価クーポンを毎日アップロード!!ギアベストクーポン
画像圧縮ソフト

物によってはまさかの99%Off オンラインコンプレッサー

くりっく

その4)SQLテクニック 副問い合わせと同じ結果を取得

この記事は約 2 分で読めます。

前回まではSelect文の基本的な使い方なり検索の仕方などを説明してきました。今回からは一気に内容を濃ゆくしていろいろな技術的な方法を小出しで出していきたいと思います。関数なども利用していきますのでその都度その都度覚えてください。

副問い合わせと同じ結果を取得

慣れればこっちの方が簡単だし早い

前回、副問い合わせで値を求めていましたが、もうちょっと簡単な方法で目的のデータを求めてみたいと思います。

この記事から見てしまった人は前回の記事からスタートしてください。

まずは、市区町村の数が100の都道府県を求めます。

まずは、ここまでは簡単ですね。

今度はこの結果をそのままテーブルとして利用し、メインのテーブルと結合します。

left outer join

行き成り出てきましたね。これは左側外部結合です。お友達に右側外部結合と完全外部結合など色々あります。

下の方が見切れていますが、数千行ほど表示されています。

この結果を見るとよくわからないのですが、クエリをこのように書き換えます。

ソースコード上で5行目の内容ですね。

B.*

これは、テーブルBのカラムをすべて表示するという意味です。

上の図を見て見ると福岡県のところに値があり、それ以外がNULLとなっています。

 

感が良い人はこの時点で気づきますかね。

この、値がNULLになっている場所を消したデータが目的のデータになっています。

ソースコードは以下です。

はい。目的のデータにたどり着けましたね。

ちょっとだけ、長くなってしまいましたが、この書き方の場合、圧倒的にイメージがしやすいです。

もともと今回のお題は元のテーブルに対して特定の条件で絞り込んだ結果に対してされに絞り込みを行う物です。

なので、テーブルを二つぶつけて、ぶつかった物が対象となることがイメージできるのであれば直ぐに書くことができます。

※ 仮に、not existsを求めたい場合は、 is null を is not null に書き換えれば良いです。

この書き方が非常にイメージしやすい事と、検索コストが非常に小さくなる可能性が大きい方法ですのでお勧めの書き方です。

ちょっと難しかったかもしれませんが、これを覚えれば副問い合わせを覚えなくてもよくなりますのでお勧めです。

本日はここまで!

 

関連記事(一部広告含む)
スポンサーリンク
3.中級者向けクエリ
kazuyoumeをフォローする
ざったなぶろぐ