いよいよSQL
仕様まとまってないまま、
構築フェーズに入ったはものの、
結局基本設計の残課題整理に追われています。
困っちゃいますね...
そんな中、待望の??SQLに突入ダス。
本テーブルと、その明細テーブルがあって、
私は単純に結合してみてくれ!程度にしか考えてなかったんだけど、
データが増えれば増えるほど、そうはいかなくなるんだなってことが
やっとわかった。
たぶん今日言われてたことは、
明細テーブルでとってきたキー
を副問い合わせの条件にして、
本テーブルから、その情報だけを取ってくる!
ってことだ。
あかんのう。
だからたぶんこゆこと。
SELECT *
WHERE 本テーブル.管理番号
IN ( SELECT 明細テーブル.管理番号
WHERE 明細テーブル.年月日 = 画面.年月日 )
ガンガン入れ子になったデータが出力されるイメージ
元から検索対象となる数は少ないほうがいいだろうとのことで、
とにかくパフォーマンスも考える必要があるってこってす
さ〜て、明日もがんばろぉ
○副問い合わせ時の注意点
・副問い合わせは、ほかの問い合わせ結果に基づく問い合わせ
・単一行比較演算子(=、<、<=、>、>=、!=)を使用した場合、1行と比較できる。複数行戻るとエラー
・複数行比較演算子(IN、ANY、ALL)を使用すれば複数行と比較できる
○参考にしたページ
・副問い合わせの構文を覚える
・サブクエリ
・SQLで複数の表からデータを取り出す
○次に覚えたいページ
・CASE式のススメ(後編)