多个值在mysql中插入连接

时间:2012-09-07 00:42:43

标签: mysql join insert

我有一个查询提交表a中的多个项目。

例如:

insert into a values(id,name) (5,'john'),(6,'smith');

虽然我还需要使用此id从其他表中选择一些第三个值。

例如:

insert into a values(id,name,money) (5,'john',(select money from b where id=5)),(6,'smith',(select money from b where id=6));

上面的问题是它有点重复,也使用子选择。

我想知道是否可以使用JOIN重写此内容(这也应该保证 与该给定id上的表b的关系,以免它插入NULL)

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

每个SELECT只允许一个INSERT,因此您需要重新编写此选项以选择多行,而不是一次插入多个值。你能创建一个包含两组值的临时表吗?INSERT那些JOIN

CREATE TEMPORARY TABLE _tmp_a (id INT PRIMARY KEY, name VARCHAR(255));
INSERT INTO _tmp_a (5, 'john'), (6, 'smith')
INSERT INTO a (id, name, money) SELECT _tmp_a.id, _tmp_a.name, b.money FROM _tmp_a LEFT JOIN b ON b.id=_tmp_a.id