我想编写一个INSERT指令,使用带有WHERE子句的子查询从不同的表中获取其中一个值,该子句比较两个表。通过查看代码可能更容易理解。
INSERT INTO table1 (f1,f2,f3)
VALUES ("foo","bar",(SELECT e3 FROM table2 WHERE table2.e2 = table1.f2));
我尝试过几种组合但到目前为止没有任何效果。可以这样做吗?如何?
答案 0 :(得分:0)
有问题的WHERE
子句有点奇怪,因为表中还不存在table1.f2
的值,它即将插入(或者我误解了查询演示的内容)。也许你想要这个:
INSERT INTO table1 (f1,f2,f3)
SELECT "foo","bar", e2
FROM table2
WHERE table2.e2 = "bar";
上面的示例演示了如何从INSERT
语句执行SQL SELECT
。
答案 1 :(得分:0)
也许您想要更新?
update table1 t1 join
table2 t2
on t1.f2 = f2.e2
set f2 = 'foo',
f3 = 'bar';