0

私はそのようなSQL文を持っています:

INSERT INTO TABLE_3(TABLE_1ID, TABLE_2ID) 
SELECT ID FROM TABLE_1 WHERE NAME = '..', 
SELECT ID FROM TABLE_2 WHERE NAME = '..';

しかし、うまくいきません。エラーが発生するだけです

ステートメント ... "SELECT" 付近: 構文エラー。

では、正しく行うにはどうすればよいでしょうか。2 つの異なるテーブルからの 2 つの選択でこれを処理する方法の例はありません。

これはうまくいきます:

INSERT INTO TABLE_1(NAME, AGE)
SELECT NAME, AGE FROM TABLE_2 WHERE ID = '..';
4

1 に答える 1

5

あなたのデータベース構造がわからないので、2 つのテーブルを結合する必要があります。そうでない場合、Name が 2 つのテーブル間の唯一の共通参照であると仮定します。実際の外部キー) を使用する必要があります。

INSERT INTO TABLE_3
       (TABLE_1ID, TABLE_2ID) 
SELECT TABLE_1.ID, TABLE_2.ID 
FROM TABLE_1 
     JOIN TABLE_2 ON TABLE_1.NAME = TABLE_2.NAME
WHERE TABLE_1.NAME = '..'

あなたのコメントから、TABLE_2とTABLE_3の間に関係がないように見えます。その場合、これを行うことができます:

INSERT INTO TABLE_3
       (TABLE_1ID, TABLE_2ID) 
SELECT (SELECT ID FROM TABLE_1 WHERE NAME = '..'), 
       (SELECT ID FROM TABLE_2 WHERE NAME = '..')
于 2013-01-16T16:33:11.413 に答える