2016-10-24 2 views
1

異なるスキーマの2つのテーブルの左結合ステートメントを使用して、データベースに新しいテーブルを作成する必要があります。ここでは以下の私のコードは次のとおりです。JOIN SQLを使用してテーブルを作成

CREATE TABLE NEW_TABLE 
    FROM SCHEMA_1.TABLE_A X 
    LEFT JOIN SCHEMA_2.TABLE_B Y 
    ON X.NAME = Y.NAME 
     AND X.NUMBER = Y.NUMBER 

私はSQLエラーを取得しています:

ORA-00922: missing or invalid option
00922. 00000 - "missing or invalid option"

任意の助けいただければ幸いです。ありがとう。

+0

を試すことができます。 –

+0

ビューを作成せずにテーブルを作成してもよろしいですか? 2つのテーブルを結合するビューを作成して、データの古いコピーを保持するのではなく、ビューを照会して最新のデータを取得できるようにしたいと思う可能性が高くなります。 –

+0

私はビューを使用することに新しいので、正しく理解した場合、ビューはよりダイナミックで、2つの親テーブルが更新されると更新されますか? –

答えて

0

あなたはas select句が欠落している:それはOracleのキーワードである

CREATE TABLE NEW_TABLE 
AS (-- This was missing 
    SELECT * -- So was this 
    FROM  SCHEMA_1.TABLE_A X 
    LEFT JOIN SCHEMA_2.TABLE_B Y ON X.NAME = Y.NAME AND 
            X.NUMBER = Y.NUMBER 
    ) 
+3

2つのテーブルが同じ名前のフィールドを共有するため、 'SELECT *'は機能しません。 – MatBailie

+0

ああ!ありがとうございました。 –

0

使用しないでくださいNUMBER列名として。二つのテーブルで唯一の共通の列がNAMENUMBERある場合は、クエリに来

その後、あなたはあなたが `SELECT`が欠落しているこの

CREATE TABLE NEW_TABLE 
AS (
SELECT * 
FROM  SCHEMA_1.TABLE_A X 
LEFT JOIN SCHEMA_2.TABLE_B Y Using(NAME,NUMBER) 
) 
+0

Nitpicking:選択の周りのカッコは無駄です –

+0

ありがとうございます。ヘルプをよろしくお願いいたします。 –

関連する問題