いよいよSQL

仕様まとまってないまま、

構築フェーズに入ったはものの、

結局基本設計の残課題整理に追われています。



困っちゃいますね...



そんな中、待望の??SQLに突入ダス。



本テーブルと、その明細テーブルがあって、

私は単純に結合してみてくれ!程度にしか考えてなかったんだけど、

データが増えれば増えるほど、そうはいかなくなるんだなってことが

やっとわかった。



たぶん今日言われてたことは、



明細テーブルでとってきたキー

を副問い合わせの条件にして、

本テーブルから、その情報だけを取ってくる!

ってことだ。



あかんのう。



だからたぶんこゆこと。



SELECT *

WHERE 本テーブル.管理番号

IN ( SELECT 明細テーブル.管理番号

   WHERE 明細テーブル.年月日 = 画面.年月日 )



ガンガン入れ子になったデータが出力されるイメージ

元から検索対象となる数は少ないほうがいいだろうとのことで、

とにかくパフォーマンスも考える必要があるってこってす



さ〜て、明日もがんばろぉ





○副問い合わせ時の注意点



・副問い合わせは、ほかの問い合わせ結果に基づく問い合わせ

・単一行比較演算子(=、<、<=、>、>=、!=)を使用した場合、1行と比較できる。複数行戻るとエラー

・複数行比較演算子(IN、ANY、ALL)を使用すれば複数行と比較できる





○参考にしたページ

副問い合わせの構文を覚える

サブクエリ

SQLで複数の表からデータを取り出す





○次に覚えたいページ

CASE式のススメ(後編)