我只是想知道是否有办法 先前的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)
,我猜你知道这些空洞,但是想要提及。无论如何,我想知道是否有办法根据此输出将EMPNO
和EMPSTATE
从EMPADDRESS
插入<{em}}到EMPHIREINFO
。我知道我可以手动执行插入声明,但我正在考虑一下我不处理有10行但数千行的表的情况。 。
我在来这里之前做了一些研究,但谷歌甚至在这个网站上搜索都让我空手而归。像往常一样,任何帮助都受到欢迎。
答案 0 :(得分: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列(这是常见的)
答案 1 :(得分: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