23 sql sql-server insert
如果从TableX获取colA的值,从TableY获取colB值,从TableZ获取colC,如何编写INSERT语句?
例如:INSERT INTO TableA(colA,colB,colC)VALUES(?,?,?)
任何想法,如果有可能吗?
mar*_*c_s 39
INSERT INTO TableA(colA, colB, colC)
SELECT TableX.valA, TableY.valB, TableZ.valC
FROM TableX
INNER JOIN TableY ON :......
INNER JOIN TableZ ON ........
Run Code Online (Sandbox Code Playgroud)
当然,TableX,TableY和TAbleZ也可能以其他方式相关(不是INNER JOIN).
如果你无法找到所有表之间的任何关系,你也可以分别做三个
SELECT @value1 = valA FROM TableX WHERE ......
SELECT @value2 = valB FROM TableY WHERE ......
SELECT @value3 = valC FROM TableZ WHERE ......
Run Code Online (Sandbox Code Playgroud)
然后是这样的插入:
INSERT INTO TableA(colA, colB, colC)
VALUES(@value1, @value2, @value3)
Run Code Online (Sandbox Code Playgroud)
这是最终的最后手段,你不能在一个SELECT
声明中表达一切.
渣
And*_*mar 24
为了回应marc_s的答案,您可以从以下选择中的不相关表中查询:
INSERT INTO TableA
(colA, colB, colC)
SELECT
(SELECT valA FROM TableX WHERE ...),
(SELECT valB FROM TableY WHERE ...),
(SELECT valC FROM TableZ WHERE ...)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
67703 次 |
最近记录: |