SQL 查询:为每个项目添加多个值

SQL Query: For each item add multiple values

如何使用表 1 和表 2 编写 SQl 查询来创建 "NewTable",结果如下所示 "NewTable"?

   Table1   
 EmmployeeID
|     1     |
|     2     |
|     3     |

  Table2
 AgencyID
|   a    |
|   b    |
|   c    |

              NewTable
      |EmmployeeID|AgencyID|
      |     1     |   a    |
      |     1     |   b    |
      |     1     |   c    |
      |     2     |   a    |
      |     2     |   b    |
      |     2     |   c    |
      |     3     |   a    |
      |     3     |   b    |
      |     3     |   c    |     

合并两个表通常意味着JOIN

生成每个可能的行组合 ("pairing") 通常意味着 "Cartesian product",也称为 CROSS JOIN,如下所示:

select EmployeeID, AgencyID
from Table1 CROSS JOIN Table2

使用CROSS APPLYCROSS JOIN。例如,

declare @a table (a int)
declare @b table (b char(1))

insert @a values (1),(2)
insert @b values ('a'),('b')

select * from @a cross apply @b order by a

尝试使用

CREATE TABLE NewTable
select EmmployeeID,AgencyID 
from Table1,Table2

通过对 Table1Table2

执行 CROSS JOIN 创建第三个 table 然后 INSERT
CREATE TABLE NewTable
( 
  EmployeeID int,
  AgencyID varchar,
);

INSERT INTO NewTable
select EmployeeID, AgencyID
from Table1 CROSS JOIN Table2