首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >SQL:插入INTO...VALUES..SELECT

SQL:插入INTO...VALUES..SELECT
EN

Stack Overflow用户
提问于 2009-05-13 08:11:17
回答 4查看 73K关注 0票数 23

如果我从TableX得到colA的值,从TableY得到colB的值,从TableZ得到colC的值,我如何编写INSERT语句?

例如:插入TableA (colA,colB,colC)值(?,?,?)

如果可能的话,你有什么想法吗?

EN

回答 4

Stack Overflow用户

发布于 2009-05-13 08:13:04

INSERT INTO TableA(colA, colB, colC)
  SELECT TableX.valA, TableY.valB, TableZ.valC
    FROM TableX
   INNER JOIN TableY ON :......
   INNER JOIN TableZ ON ........

当然,TableX、TableY和TAbleZ也可能以其他方式相关(不是内部连接)。

如果您根本找不到这些表之间的任何关系,您也可以分别执行三个

SELECT @value1 = valA FROM TableX WHERE ......
SELECT @value2 = valB FROM TableY WHERE ......
SELECT @value3 = valC FROM TableZ WHERE ......

然后像这样插入:

INSERT INTO TableA(colA, colB, colC)
             VALUES(@value1, @value2, @value3)

这是最终的最后手段,您不能在一条SELECT语句中表达所有内容。

Marc

票数 40
EN

Stack Overflow用户

发布于 2009-05-13 09:23:35

作为对marc_s的回答的响应,您可以在select like中查询不相关的表:

INSERT INTO TableA
    (colA, colB, colC)
SELECT
    (SELECT valA FROM TableX WHERE ...),
    (SELECT valB FROM TableY WHERE ...),
    (SELECT valC FROM TableZ WHERE ...)
票数 24
EN

Stack Overflow用户

发布于 2009-05-13 08:14:42

Insert into TableA (ColA, ColB, ColC) . . .

必须是列名称,如表A中所示。

Insert into TableA (ColA, ColB, ColC) . . .
Select TableX.Col1, TableY.Col1, TableZ.Col5 
From TableX, TableY, TableZ
Where . . . 
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/856707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档