我正在尝试从两个select语句中插入两个值,例如:
INSERT INTO manytomany_relation_a_and_b_tables (a_id, b_id) VALUES
(SELECT id FROM a_table WHERE someColumnFromA="SOMETHING"),
(SELECT id FROM b_table WHERE someColumnFromB="SOMETHING");
显然它不起作用,但我怎样才能达到我想要的效果呢?
答案 0 :(得分:3)
如果每个SELECT
子查询返回恰好一个值,则可以使用INSERT INTO ... SELECT
语法:
INSERT INTO manytomany_relation_a_and_b_tables (a_id, b_id)
SELECT (SELECT id FROM a_table WHERE someColumnFromA="SOMETHING"),
(SELECT id FROM b_table WHERE someColumnFromB="SOMETHING")
否则,您需要指定两个表连接在一起的条件,并在JOIN
语句的SELECT
查询中执行INSERT
。
答案 1 :(得分:2)
如果这两个表有任何共同点,你也可以使用join。
INSERT INTO manytomany_relation_a_and_b_tables (a_id, b_id)
VALUES
select t1.id,t2.id
from a_table t1
join
b_table t2
on t1.something=t2.something
and t1.somecolumna='something' and t2.somecolumna='something'