插入双选 - 如何?

dan*_*nte 4 mysql sql

我试图从两个选择语句中插入两个值,例如:

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");
Run Code Online (Sandbox Code Playgroud)

显然是不行的,但是怎样才能达到我想要的效果呢?

Gio*_*sos 5

如果每个子查询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")
Run Code Online (Sandbox Code Playgroud)

否则,您需要指定一个条件,将两个表连接在一起并JOIN在语句SELECT的查询中执行INSERT