2016-06-17 13 views
3

私は2つのSELECT文のようなものから2つの値を挿入しようとしている:INSERT INTOダブルセレクト - 方法?

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"); 

明らかにそれは動作しませんが、どのように私は私が望む効果を達成することができますか?

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") 

は、そうしないと、2つのテーブルが一緒に連結されている条件を指定し、中JOINを実行する必要があります。SELECTサブクエリのそれぞれが正確に一つの値を返す場合

答えて

3

、あなたはINSERT INTO ... SELECT構文を使用することができますINSERTステートメントのSELECTクエリこれら二つのテーブルが共通して任意のものを持っている場合

2

また、参加使用することができます。..

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'