如何在sql中连接两个不相关的表

fen*_*222 18 sql t-sql sql-server sql-server-2008 sql-server-2008-r2

我有两张桌子:

表1:配方

FormulaId    Formula Text
1            [Qty] * [Rect]
2            [Qty] * [Al]
3            [Mt] * [Cat]  
Run Code Online (Sandbox Code Playgroud)

表2:上下文

ContextId    Name
1            Test 1
2            Test 2
3            Test 3
4            Test 4    
Run Code Online (Sandbox Code Playgroud)

我需要以某种方式在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]
Run Code Online (Sandbox Code Playgroud)

Vik*_*dor 21

您可以使用以下Cartesian Product两个表:

SELECT * FROM Formulas, Context
Run Code Online (Sandbox Code Playgroud)

这会导致M * N行.


Lit*_*les 20

你想用一个CROSS JOIN:

SELECT FormulaId, Formula, ContextId, [Name]
FROM Formula
CROSS JOIN Context
Run Code Online (Sandbox Code Playgroud)

  • 我必须在打电话时更好.自动更正似乎不了解SQL. (2认同)