0

我只是想知道是否一种方法可以根据以前 的. 我不知道我的解释是否正确,所以让我试着告诉你query

下面是一个简单的外连接,它显示了EMPHIREINFO表中缺少的内容:

Select b.empno, b.empstate, c.startdt, c.enddt, c.cntrlgth
From EMPADDRESS b Left Outer Join EMPHIREINFO c
On b.empno = c.empno
Order By startdt

输出:

EMPNO   EMPSTATE    STARTDT     ENDDT       CNTRLGTH
9873    NY          20-MAY-11   20-NOV-11   6
7566    CA          15-OCT-11   15-OCT-12   12
7499    MN          31-OCT-11   30-APR-12   6
7369    NJ          15-JAN-12   15-JAN-13   12
5300    NY          11-AUG-12   11-AUG-13   12
7521    NJ          12-NOV-12   12-MAY-13   6
4600    NY          10-DEC-12   10-JUN-13   6
7902    CA          
7934    NY          
7900    MN          

所有的空白点都是(null),我想你知道但还是想提一下。无论如何,我想知道是否有一种方法可以根据此输出将and from into插入。我知道我可以手动执行Insert Statement,但我正在考虑一种情况,即我不处理具有 10 行而是数千行的表。EMPNOEMPSTATEEMPADDRESSEMPHIREINFO

在来这里之前我确实做了一些研究,但谷歌甚至在这个网站上搜索都让我两手空空。像往常一样,欢迎任何帮助。

4

2 回答 2

2

SQL 允许您使用表单插入到表中

insert into table1
select ...

只要列号和类型对齐。如果没有,您可以指定插入列,例如

insert into table1 (col1, col5, col2)
select ...

所以,对你来说(假设列类型对齐):

insert into EMPHIREINFO 
Select b.empno, b.empstate, c.startdt, c.enddt, c.cntrlgth
From EMPADDRESS b Left Outer Join EMPHIREINFO c
On b.empno = c.empno
Order By startdt

您可能需要指定列,例如,如果您有一个自动递增的 id 列(这很常见)

于 2012-12-19T19:21:12.647 回答
1
INSERT destination_table (column1, column2,column3)
SELECT a.column1, a.column2, b.column3
FROM source_table_a AS a
INNER JOIN source_table_b AS b ON (a.key1 = b.key1)

您可以将此 INSERT 语法与生成结果集的其他命令一起使用:

INSERT destination_table (column1, column2,column3)
EXEC usp_produce_some_output
于 2012-12-19T19:21:24.313 回答