2017-11-09 10 views
0

3つのテーブルのカスケード:がどのように3つのテーブルしたSQL

サプライヤー{S#、SNAME、状態、都市} 主キー{S位}

一部{P位、PNAME、色、街} 主キー{Pの#}

仕事{jは#、jnameの、都市} 主キー{jは#}

私はサプライヤーにいくつかのレコードの、

"すべての挿入" との一部と仕事を挿入

は、今は最初の3つの列が外部キーであるテーブルSPJ {S位、P位、J位、数量}を作成します。

レコードをspjテーブルに挿入するにはどうすればよいですか?

サンプルテーブルデータ:

サプライヤー: enter image description here

一部: enter image description here

仕事: enter image description here

+0

mysqlの<> SQLは... 1を選びます! –

+0

MySQLの<>は、Oracle ... – jarlh

+0

は、私たちにいくつかのサンプル表3既存のテーブルのデータ、そしてどのような新しいテーブルにしたいを表示します。おそらく、別のテーブルの代わりにビューを作成する必要があります。 – jarlh

答えて

0

このOracleコマンドは、3つのテーブルのcarthesian製品としてテーブルspjを作成し、追加しますランダムな量。ランダムな値を必要としない場合は、nullに変更します。

create table spj as 
    select s.sid, p.pid, j.jid, round(dbms_random.value(1, 100)) quantity 
    from supplier s cross join part p cross join job j; 

すでにcreateinsertを使用していないテーブルを作成した場合。 cross joinの代わりに、任意の結合条件を使用できます。多分cityです。今は9 x 9 x 9行です。

そして、ここでは、私は外部キーを追加している:

alter table spj add constraint spj_sup_fk foreign key (sid) references supplier (sid); 

alter table spj add constraint spj_part_fk foreign key (pid) references part (pid); 

alter table spj add constraint spj_job_fk foreign key (jid) references job (jid); 
関連する問題