1

A と B の 2 つのテーブルがあり、それぞれに一意の ID 列 A_id と B_id があるとします。次に、ある日目を覚まし、2 つのテーブルに関係があると判断したとします。そこで、A_id と B_id のペアを含むテーブル AB を作成します。次に、テーブル内の他のデータ (A_name と B_name など) に基づいてこれらのペアを挿入する SQL サーバー スクリプトを作成します。実際の挿入は次のように機能することを期待しています (ただし、Powershell スクリプトなどを使用してユーザーが入力したより高度な WHERE 句を使用します)。

INSERT INTO AB (A_id, B_id) 
VALUES 
((SELECT (A_id) FROM A WHERE A_name = 'bob'), 
 (SELECT (B_id) FROM B WHERE B_name = 'john'))

このような操作の正しい構文がわかりません。誰かが私を正しい方向に向けることができますか?

4

1 に答える 1

2

2 つのサブ選択から選択する代わりに、使用するロジックを使用して、2 つのテーブルの結合から選択する必要があります。

INSERT INTO AB (A_id, B_id)
SELECT a.A_id, b.B_id
FROM A 
INNER JOIN B
 ON A.SomeColumn=B.SomeColumn

または、例をより正確に再現するには、次のようになります。

INSERT INTO AB (A_id, B_id)
SELECT a.A_id, b.B_id
FROM A 
INNER JOIN B
 ON A.A_name='bob'
 AND B.B_name='john'
于 2015-08-27T21:20:21.260 に答える