SQL:通过为第二个查询的每个记录重复一个查询的输出来创建记录集

时间:2014-12-22 13:39:00

标签: sql sql-server database tsql database-administration

我有一个返回记录的查询

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

2 个答案:

答案 0 :(得分:4)

使用cross join

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

答案 1 :(得分:1)

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