比较子查询中两个表的值

时间:2014-03-31 10:11:13

标签: mysql sql subquery

我想编写一个INSERT指令,使用带有WHERE子句的子查询从不同的表中获取其中一个值,该子句比较两个表。通过查看代码可能更容易理解。

INSERT INTO table1 (f1,f2,f3) 
VALUES ("foo","bar",(SELECT e3 FROM table2 WHERE table2.e2 = table1.f2));

我尝试过几种组合但到目前为止没有任何效果。可以这样做吗?如何?

2 个答案:

答案 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';