【誰もいないから】インメモリDBを作ろう【今のうち】 (30レス)
1-

15: 2014/07/09(水)20:39 ID:naIqrL5h5(1) AAS
joinができました。
joinにはinner join,left join, right join,outer joinとかがあります。
DBによってはfull outer joinがなかったり方言があるんですね。知らなかった。

さて普通にjoinと書くとinner joinが呼ばれるようです、多分。2つのDBをある
条件で接続したときに対応するレコードがあるレコードだけを取得するのがinner joinです。
同様に左側全レコードに対応する要素があれば転記するのがleft join,
右側全レコードに対応する要素があれば転記するのがright joinです。
まずは普通のjoinを作ります。

前にwhereで作ったルーチンを流用して2つのDBについて条件値が合致すれば2つのDBから
転記するように作ります。転記はmemmoveにて実装されてるようなのでそれなりに早いはず。
比較にコストがかかってるためにカラム番号から比較する実体を引き渡すように変更。
早く小さくなりました。

商品と生産者を商品IDでjoinさせてみました。まあなんとなく出ています。
tbl1->Join(tbl2,"商品tbl.商品ID","=","生産者tbl.商品ID");
商品tbl.商品ID|商品tbl.商品名|商品tbl.区分ID|商品tbl.価格|生産者tbl.商品ID|生産者tbl.名前|生産者tbl.TEL
1|りんご|1|300|1|佐藤|012-345-6789
2|みかん|1|130|2|鈴木|012-345-6788
3|キャベツ|2|200|3|武田|012-345-6787

ここで今まで作った関数は全てどこに入れてもOKです。selectしてからjoinしてもjoinしてから
selectしても問題ありません。このまま作ってSQLから関数呼び出しに変更するときに
色々考慮すればいいのだなぁという感じです。

次はorder by等やります。ソースは
外部リンク:ideone.com
1-
あと 15 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.002s