2012-10-04 53 views
10

兩個不相關的表我有兩個表:如何加入SQL

表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某種方式加入這些服務器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] 

回答

13

你可以用兩個表的Cartesian Product如下:

SELECT * FROM Formulas, Context 

這將導致M * N行。

16

你想用一個CROSS JOIN

SELECT FormulaId, Formula, ContextId, [Name] 
FROM Formula 
CROSS JOIN Context 
+1

我必須在打電話時變得更好。自動更正似乎不瞭解SQL。 – LittleBobbyTables

0

你只能做交叉聯接。其他連接只能使用相關表格完成。