データセットをデータベース シミュレータとして使用してクエリを作成する方法を検索します。データセットには、主キー列を持つ各テーブルが含まれています。外部キーもあります。 データベースvb.netをシミュレート
Key/Value のリストを与えることで、"Where" 部分を作成する方法を検索します。
データセットは空になります。クエリの指数リストを作成する唯一の方法です。
サンプル: サンプル:
Table A
colA
と
Table B
colB
colD
によってリンクされた
Table C
colA
colB
と
Table D
colD
リストあげます
[colA] 1
[colA] 2
[colA] 3
[colB] 5
[colB] 6
[colD] 8
リストで指定された要素を含むテーブル A のすべてのアイテムのクエリが必要です。
Select *
from TableA
where colA in (1,2,3)
and colA in (
select colA
from TableC
where colB in (5,6)
and colB in (
select colB
from TableB
where colD in (8)
)
)
だから私はアルゴリズムを検索してクエリを作成しています。クエリジェネレータが動作するように。
これらのテーブルのいずれかからデータを取得できます。
関数のこれ
function GetSubQuery(table, list(of keyValue) as string
私のサンプルはTableAを求めます。しかし、同じIDリストを持つTableBまたはCまたはD.が必要な場合があります。
シチュエーション(シミュレーション)
I want table A,B or D.
I can ask for table A, giving id from colD.
I can ask for table A, giving id from colB.
I can ask for table A, giving id from colA.
I can ask for table A, giving id from colB and colD.
I can ask for table A, giving id from colB and colA.
I can ask for table A, giving id from colB and colD and colA.
I can ask for table B, giving id from colD.
...
ここには 18 の可能性があります。
しかし、私は最大の可能性のクエリを望んでおらず、すべての可能性に使用しています。「colB と colD と colA から id を与えるテーブル A」のクエリを意味します。colA の ID しか持っていない場合は使用しないでください。他のテーブルには大量のデータが含まれている可能性があり、必要なく内部を検索するためです。
アルゴリズムは知っておく必要があります。そこに行く必要がない場合は、必要ありません。