【ACCESS SQL】目に見えないクエリを想像することで、抽出可能なデータ

記事
IT・テクノロジー

YouTubeでも紹介しています。是非ご覧ください。



データベースは、VBAではなく、いかにデータを抽出するかです。
目に見えない、架空のクエリを想像できれば、さらに、データ抽出が楽になります。


目に見えないクエリを想像することで、抽出可能なデータ

こんにちは。伊川です。
前回は、SQL文の基礎中の基礎を紹介しました。
また、前回紹介した書籍のChapter3で、LIMIT句というのが登場します。
結論から言いますと、ACCESSでは、LIMIT句は、利用できません。
なので、LIMIT句の代替のコードを利用します。
少し面倒な作業が増えます。
もちろん、このような複雑なことをしなくても、今回のサンプルでは、データ抽出ができます。
しかし、この面倒な作業を、覚えることで、複雑なデータ抽出ができるようになります。
VBAよりも、ずっと面白い内容です。



このブログはこんな人にお勧め

ACCESSでクエリを勉強している人
クエリのスキルに限界を感じている人
SQLを勉強している人


このブログを、読み終わるころには・・・・

初めて、競馬で、データ抽出で、壁に当たった内容でした。
デザインビューを見ても到底、その時の私には、理解できない内容でした。
しかし、目に見えないクエリが、どのように作動しているのかを、このブログで理解できるようになります。


上位2つのレコードを抽出したい

1 (2).png

この、テーブルから、上位2つのレコードを抽出します。

つまり、伊川直助、伊川直子を、抽出します。
2.png


このような状態にします。
3 (2).png


普通は、これで完了です。
もちろん、これでも正解ですが、架空のクエリを作成して、抽出をします。
LEFT JOIN、左外部結合を利用して、抽出します。

LEFT JOIN(左外部結合) 作業手順 その1 MT_testから、上位2つのレコードを定義する


4 (2).png

イメージは、こんな感じです。
SELECT TOP 2 * FROM MT_test 
この意味は、MT_testの、上位2つのレコードを定義する書き方です。
前回も言いましたが、SELECT~ FROM ~の基本系です。
まだ、ここには、記載されていませんが、目に見えないクエリは、t2が付いているクエリです。
SELECT TOP 2 * FROM MT_test 
この文章から、下記のクエリを想像するのです。


5 (2).png

LEFT JOIN(左外部結合) 作業手順 その2 MT_testと、t2を結合する


LEFT JOIN (SELECT TOP 2 * FROM MT_test) AS t2
    ON MT_test .ID = t2.ID
このSQL文の意味は、
左外部結合しなさい。
MT_testのIDと、SELECT TOP 2 * FROM MT_test(目に見えないクエリ)のID
という意味です。


LEFT JOIN(左外部結合) 作業手順 その3 MT_testと、t2の外部結合の結果

6 (2).png

この赤いところが、左外部結合されています。
t2に関しては、MT_testの、上位2つのレコードしか定義していないので、3~5は、Nullになります。


LEFT JOIN(左外部結合) 作業手順 その4 WHEREで、空白以外を抽出

WHERE t2.ID IS NOT NULL;
これも前回紹介した、SQL文の基本中の基本です。
7 (2).png


455.png


このように抽出することができます。

LEFT JOIN(左外部結合) 作業手順 その5 所管


8 (2).png

これは、私が、毎週、かかわっている競馬のデータです。
抽出条件
数値、1位、2位の馬が、1枠であること
かつ、同一グループ(同一レース)であること
9 (2).png
この条件で、抽出するには、
今回、紹介した、架空のクエリを作成します。
競馬も、悪い事ばかりではありません。


ここがポイント

前回と、今回の、動画、ブログを読んで、面白いと思った人は、
本気で、SQLの勉強をした方がいいです。
VBAより、多分、お金になります。
間違いないです。
ということで、少し難しめのクエリの書籍も購入しました。
SQLは、本当に面白いです。


まとめ

架空のクエリを作成できるようになり、また、データ抽出の幅が広がりました。
ぜひとも、架空のクエリを作成できることに感動してください。
今回も最後まで読んでいただきありがとうございました。

サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す