2011-02-03 14 views
0

mとnの関係を持つ2つのデータセットA、Bがあるとします。両方のセットにマッピングを効率的に見つける

A = {K1、K2、K3 .... KN} B = {G1、G2、G3 .......... GN}

すべての要素英数字です。 (K1、G2) (K2、G4) (K1、G3) (K4、G2 - : 次に、セットAとセットBからタプル一つずつが元のテーブルT.

に格納されています) ... ... .. (KN、GM)

課題は、最も効率的に集合B内のどの「n」の要素に設定されたマップのどの「M」の要素を見つけることです方法。 EXのために

、我々は以下のタプルを持っているとしましょう、

(K1、G1) (K1、G2) (K3、G1) (K3、G2) (K5、G1) ( k5、g2)

o/p必要なのは、(k1、k3、k5) - >(g1、g2)です。

マッピングがm〜nであるため、単純な選択は機能しません。さらに詳しい説明が必要な場合は教えてください

この情報はすでにデータベースに入っているので、私はこれをSQLで手に入れることができます。

大変助けになりました。あなたは、多くの場合、集約、GROUP BY句を使用して、このような問題を解決することができ

+1

テーブルにタプルがどのように格納されているかわかりませんが、正しく理解していますが、まだその情報はありませんか?タプルを持つテーブルがある場合、tuple_tableはタプル(kn、gm)であり、どのk要素(集合Aから来る)がg要素(集合Bから来る) tuple_tableはそれをしますか? – chahuistle

+0

ありがとうございます。更新された質問。 – MnM

答えて

0

事前に

おかげで...。例えば

、あなたのテーブル名が、その後Tの場合:

select T.item1, concat(T.item2, ", ") from T group by T.item1 

あなたはITEM1が、それが再びITEM2がITEM1にマップする見つけるために約2 ITEM1とアイテムを切り替えない項目2にマッピングされ与えます。

+0

チャールズさんに感謝します。私はMS SQL 2008を使用し、私は 'Concat'機能を見つけるように見えません。私は何かを逃しているのですか、これを達成するための他の方法がありますか? – MnM

+0

こんにちはMnM、私はMS SQLでそれを行う方法はわかりません、明らかに文字列concatは組み込まれていないので、独自の関数を記述する必要があります。このリンクを見てくださいhttp://forums.aspfree.com/microsoft-sql-server-14/sql-aggregate-function-that-c​​ombines-like-concat-73073.html –

+0

チャールズさんに感謝します。私はUDFを作成しました。 http://msdn.microsoft.com/en-us/library/ms131056.aspx http://www.projectdmx.com/tsql/owconcatenate.aspx私は、もし私たちがロジックをコード内に保つなら、維持する方が簡単かもしれないと考えました。それをSQLに書き込む。 – MnM

関連する問題