2013-07-04 50 views
0

我想要做一個查詢返回這樣的事情與記錄JOIN在兩個表中

Table 1 
Id1 Name 
    1 A 
    2 B 
    3 C 
    4 D 
    5 E 

Table 2 
    Id2 
    10 
    11 
    12 

我需要去表2和表1返回每個記錄是這樣的:

Id1 Name Id2 
1 A 10 
2 B 11 
3 C 12 
4 D 10 
5 E 11 

當我完成表2中的記錄,我再次開始,直到完成表1中的記錄。 謝謝!

+0

所以,你如何決定'Table2'中哪些行進入'Table1'?從我能收集的數據中循環選擇? –

+0

我只想分割沒有任何條件的記錄 – rgx71

+0

我在你的** table2中找不到模式* *,如果你不想使用笛卡爾產品,那麼我不知道有任何其他的方法可以做在桌子2上應該放些什麼? –

回答

0

嘗試用此查詢,這個完美的作品(這裏是link你去嘗試)

WITH tempTable1 AS 
(
    SELECT 
     b.ID2, 
     ROW_NUMBER() OVER (ORDER BY ID2) AS position1 
    FROM 
     TABLE2 b 
) 
SELECT x.ID1, x.NAME, isnull((SELECT b.id2 FROM tempTable1 b WHERE b.position1 = (x.position2 % (SELECT COUNT(1) FROM tempTable1))), 
(SELECT TOP 1 y.id2 FROM tempTable1 y ORDER BY y.position1 desc)) AS ID2 
FROM (
SELECT A.ID1, A.NAME, ROW_NUMBER() OVER (ORDER BY A.ID1) AS position2 
FROM TABLE1 A 
) X 

此查詢我不喜歡它,但我不能再拍:(

+0

謝謝!這就是我要的!! – rgx71

+0

不客氣! –