SQL:插入...值..选择

标签 sql sql-server insert

如果我从TableX获取colA、从TableY获取colB、从TableZ获取colC,我该如何编写INSERT语句?

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

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

最佳答案

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 也可能以其他方式相关(不是 INNER JOIN)。

如果你根本找不到表之间的任何关系,你也可以做三个单独的

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 语句中表达所有内容。

马克

关于SQL:插入...值..选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/856707/

相关文章:

sql - 实时对大量数据进行版本控制

sql - 如何从 SSMS 获取完整结果集

sql-server - 单个查询中的多个分组信息

linq-to-sql - 使用 Linq-To-SQL 插入/选择

mysql 插入并选择带有插入id的行

MySQL 多个左连接问题

mysql - 连接两个表 SQL 查询中正确对齐的字段

mysql - 在令人兴奋的结果后插入新记录

sql - 如何在 SQL Server 2005 中使用 SQL 命令打印给定日期的日期名称?

sql-server - 有 "display purposes"的数据库列可以吗?