同じフィールド名を持つ2つの別々のテーブルを新しいテーブルに結合する

私はどこにでも見てきました。私が把握しようとしているものを正確に見つけることはできません。

これらは私が持っている2つのテーブルです:

第1表:PET フィールド名:PET_ID(INT)、PET_BREED(VARCHAR2(25))、PET_NAME(VARCHAR2(25))、PET_VALUE(NUMBER * 8,2))、PET_DATE(DATE)

第2表:PET2 フィールド名:PET2_ID(INT)、PET2_BREED(VARCHAR2(25))、PET2_NAME(VARCHAR2(25))、PET2_VALUE(NUMBER * 8,2))、PET2_DATE(DATE)

PETとPET2のすべてのレコードを、重複する行を作成せずにPET3という名前の新しいテーブルに結合したいとします。 PET_ID番号は同じではありませんが、他のすべてのフィールドがPETテーブルのレコードと一致するPET2にはいくつかの行があります。

このクラスの割り当てには、ORACLE EXPRESS 10gを使用する必要があります。私は壁に頭を打ちつけているように感じるようになる。私ができないことをしようとしているかどうかはわかりません。

PET3テーブルを最初に作成してから、他の2つのテーブルの情報を結合しなければならないのですか?

あなたの助けは大いに大いに評価されるでしょう。私は聞くまで狩り続けます。 ありがとうございました! DCM

2

2 答え

私は今すぐテストすることができるDBエンジンを持っていないので、私の声明を非常に真剣に受け止めないでください。なぜこのようなものを使用しないのですか?それはあなたがやろうとしていることですか?

SELECT INTO new_table FROM (SELECT PET_ID, PET_BREED, PET_NAME, PET_VALUE, PET_DATE FROM PET UNION SELECT PET2_ID as PET_ID, PET2_BREED as PET_BREED, PET2_NAME as PET_NAME, PET2_VALUE as PET_VALUE, PET2_DATE as PET_DATE)

もちろん、その前に予想される構造を持つcreate table new_tableを実行する必要があります

1
追加された

PETから新しいテーブルに選択し、NOT EXISTSを使用してPET2に対して同じ操作を行います。それを読んで、うまくいくはずです。

1
追加された
あなたはどこにそれを挿入しているのかは言いません。 SELECT(...)INTO MyResultTableは存在しないPET2(...)
追加された 著者 SteveCav,
SELECT INTOは新しいテーブルを作成します。必要な構文は、INSERT INTO PET3(PET_ID、PET_BREED、PET_NAME、PET_VALUE、PET_DATE)です。SELECT PET_ID、PET_BREED、PET_NAME、PET_VALUE、PET_DATEは存在しません(SELECT * FROM PET3 WHERE PET3.PET_NAME = PET2.PET_NAME)。 -
追加された 著者 SteveCav,
情報ありがとうございました。私はほとんどそれを持っていると思うが、私は次のものを使用しているので、何かが足りないと思っている。そして "INTO"を省略すると、PET3に挿入したい行が表示される。 INTO "にエラーが発生しましたORA-00936表現がありません。ここに私が入力したステートメントがあります。 SELECT INTO PET_ID、PET_BREED、PET_NAME、PET_VALUE、PET_DATEは存在しません(SELECT * FROM PET3 WHERE PET3.PET_NAME = PET2.PET_NAME)。ありがとうございました!
追加された 著者 DCM,
私はあなたの助けに感謝します。まだ動かない。それは構文ですか?ここに私が試したことはありますが、エラーメッセージORA-00905が欠落しています。PET3は既存のテーブルです。OKですか?SELECT PET_ID、PET_BREED、PET_NAME、PET_VALUE、PET_DATE PET3からPET2には存在しません。 * FR3 PET3 WHERE PET3.PET_NAME = PET2.PET_NAME);
追加された 著者 DCM,