2012-10-04 11 views
10

Mam dwie tabele:Jak dołączyć do dwóch niepowiązanych tabel w SQL

Tabela 1: wzorach

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

Tabela 2: Kontekst

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

muszę przyłączyć się do tych jakoś w sql serwer 2008 R2, aby uzyskać tabelę, w której dla każdego identyfikatora kontekstu będę miał pełną listę formuł, tj.

Wynik

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] 

Odpowiedz

13

Można użyć Cartesian Product z dwóch tabel w następujący sposób:

SELECT * FROM Formulas, Context 

Spowodowałoby M * N rzędach.

16

chcesz użyć CROSS JOIN:

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

Muszę być lepszy w pisaniu na telefonie. Autokorekta nie wydaje się rozumieć języka SQL. – LittleBobbyTables

0

Można nie tylko Krzyż Dołącz. Inne sprzężenia można wykonać tylko z powiązanymi tabelami.

Powiązane problemy