22

私は2つのテーブルを持っています:

表1:式

FormulaId    Formula Text
1            [Qty] * [Rect]
2            [Qty] * [Al]
3            [Mt] * [Cat]  

表2:コンテキスト

ContextId    Name
1            Test 1
2            Test 2
3            Test 3
4            Test 4    

SQL Server 2008 R2でこれらを何らかの方法で結合して、各コンテキストIDの式の完全なリストを取得するテーブルを取得する必要があります。

結果

ContextId    Name     FormulaId    Formula Text    
1            Test 1   1            [Qty] * [Rect]
1            Test 1   2            [Qty] * [Al]
1            Test 1   3            [Mt] * [Cat]
2            Test 2   1            [Qty] * [Rect]
2            Test 2   2            [Qty] * [Al]
2            Test 2   3            [Mt] * [Cat]
3            Test 3   1            [Qty] * [Rect]
3            Test 3   2            [Qty] * [Al]
3            Test 3   3            [Mt] * [Cat]
4            Test 4   1            [Qty] * [Rect]
4            Test 4   2            [Qty] * [Al]
4            Test 4   3            [Mt] * [Cat]
4

4 に答える 4

25

使用したいCROSS JOIN

SELECT FormulaId, Formula, ContextId, [Name]
FROM Formula
CROSS JOIN Context
于 2012-10-04T01:49:14.753 に答える
24

Cartesian Product次のように2つのテーブルのを使用できます。

SELECT * FROM Formulas, Context

これにより、M * N行が作成されます。

于 2012-10-04T01:46:49.753 に答える
4

試しましたかCROSS APPLY

select *
from context
cross apply formulas
order by contextid

SQL FiddleWithDemoを参照してください

于 2012-10-04T01:46:56.177 に答える
0

クロス ジョインのみ実行できます。その他の結合は、関連するテーブルでのみ実行できます。

于 2012-10-05T05:24:13.263 に答える