我有2個表格根本不相關,我需要把它們放在一起 - 每個表格一列。當我嘗試笛卡爾加盟,我結束了與每一個組合:SQL Server 2008 - 需要幫助合併2個表(笛卡爾)
SELECT Field1, Field2 FROM Table1, Table2
結果:
Table1.Field1 Table2.Field2
---------------------------
1 1
1 2
1 3
2 1
2 2
2 3
3 1
3 2
3 3
我需要它返回並排側:
Table1.Field1 Table2.Field2
---------------------------
1 1
2 2
3 3
是這樣的可能?在此先感謝
編輯
Table1.Table1IDs
----------------
1
2
3
4
5
Table2.Table2IDs
----------------
6
7
8
9
10
所需的輸出(到一個臨時表/ select語句)
Table1.Table1IDs Table2.Table2IDs
------------------------------------
1 6
2 7
3 8
4 9
5 10
這樣我就可以做我的插入到實際的表我需要做一個插入:
INSERT INTO dbo.MTMObjects
SELECT Table1IDs, Table2IDs
FROM [temp table or solution]
回答 Bluefeet給了我一個想法,即使用帶有標識列的臨時表,然後我可以使用它加入。他是「安全」,因爲你不是依賴於SQL的幽默排序都記錄集相同,但是這可能幫助未來的傢伙:
DECLARE @tmp_Table1 TABLE(ID int IDENTITY(1,1) NOT NULL, TableID1 int NOT NULL)
DECLARE @tmp_Table2 TABLE(ID int IDENTITY(1,1) NOT NULL, TableID2 int NOT NULL)
INSERT INTO @tmp_Table1
OUTPUT INSERTED.Field1
SELECT * FROM Table1
INSERT INTO @tmp_Table2
OUTPUT INSERTED.Field2
SELECT * FROM Table2
OUTPUT
SELECT tmp1.Field1, tmp2.Field2
FROM @tmp_Table1 tmp1 INNER JOIN @tmp_Table2 tmp2 ON tmp2.ID = tmp1.ID
乾杯!
我最終使用了這種變化 - 我會張貼在上面,所以下一個傢伙將有2個解決方案:) – Losbear
@Losbear你總是可以發佈你的版本作爲答案,然後接受它作爲解決方案。 – Taryn