2014-12-22 85 views
0

我返回記錄如下SQL:通過重複一個查詢的輸出爲第二查詢的每個記錄創建一個記錄

vw_EmployeeReferenceNumbers查詢

NAME  Number 
----  ------ 
AA   123 
AA   234 
AA   456 

我有另一個表返回像這樣

AllEmployees記錄

AllNames 
    ---------- 
    AA 
    BB 
    CC 

我要輸出像這樣

NAME  Number 
----  ------ 
AA   123 
AA   234 
AA   456 
BB   123 
BB   234 
BB   456 
CC   123 
CC   234 
CC   456 

我不希望在所有使用遊標的記錄。我不能修改視圖vw_EmployeeReferenceNumbers或表AllEmployees。這可以在SQL中完成嗎?

我至今不工作是:

select name, number 
from 
(select Name, number, 1 as id from vw_EmployeeReferenceNumbers 
) as A 
left join 
(select name, 1 as id from AllEmployees 
) as B 
on A.id = B.id 

回答

4

使用cross join

select e.name, ern.number 
from AllEmployees e cross join 
    vw_EmployeeReferenceNumbers ern; 
+0

沒有工作。我只是一直重複AA。 – user20358

+0

@Gordon根據您提供的信息是正確的。 [小提琴示例](http://sqlfiddle.com/#!3/5faa1/1) – FriendlyManCub

+0

@ user20358。 。 。這將會讓所有員工,儘管它可能以所有'AA'開頭。 –

1
SELECT e.name, 
     ern.number 
FROM AllEmployees e INNER JOIN 
    EmployeeReferenceNumbers ern ON 1=1 
ORDER BY e.name 
+0

http://sqlfiddle.com/#!6/67917/2 – Vasily