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 APPLY
或CROSS 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
通过对 Table1
和 Table2
执行 CROSS JOIN
创建第三个 table 然后 INSERT
值
CREATE TABLE NewTable
(
EmployeeID int,
AgencyID varchar,
);
INSERT INTO NewTable
select EmployeeID, AgencyID
from Table1 CROSS JOIN Table2
如何使用表 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 APPLY
或CROSS 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
通过对 Table1
和 Table2
CROSS JOIN
创建第三个 table 然后 INSERT
值
CREATE TABLE NewTable
(
EmployeeID int,
AgencyID varchar,
);
INSERT INTO NewTable
select EmployeeID, AgencyID
from Table1 CROSS JOIN Table2