如果我从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/