プライマリID(intではなくvarchar)を除いて、フィールドが異なる2つの既存のテーブルがあります。基本的にこれら2つをマージした、3番目のテーブルを作成します。これにより、特定の主キーに対して、すべてのフィールドが1つのテーブルに含まれるようになります。
これを行うためのbextの方法は何ですか?
どうもありがとう
特定のプライマリIDの両方のテーブルに1つの行があることが確実な場合、これは機能するはずです。
SELECT
tablea.field1, tablea.field2, tablea.field3, ... tablea.fieldn, <---- field list
tableb.field1, tableb.field2, tableb.field3, ... tableb.fieldm <---- field list
FROM
tablea, tableb
WHERE
tablea.primaryID = tableb.primaryID
TableaとtablebのプライマリIDフィールドが実際に必要ない場合は、フィールドリストから除外することをお勧めします(このクエリでは、tablea.primaryID = tableb.primaryID
条件のため、両方に同じ値が含まれます)。
構文はVIEW
でも比較的似ています。
CREATE TABLE result AS
(SELECT first.*,
second.f1,
second.f2,
second.f3
FROM first
INNER JOIN second
ON first.id = second.id);
ビューを取得するには、「TABLE」を「VIEW」に置き換える以外は同じようにします。ビューではなくテーブルを使用する場合は、デフォルトでは追加されないため、必ず主キーを追加してください。
MS SQLの場合、これを使用します
SELECT * INTO result
FROM table1
INNER JOIN table2
ON table1.id = table2.id