2016-11-18 7 views
0

CAR1とCAR2がテーブルであるとします。そして、私はこれを行うことができます:ビュー内の異なるビューからの値の選択

select c1.modelType, c2.modelType from CAR1 c1, CAR2 c2; 

を今、私たちはV_CAR1呼ばCAR1のためのビュー、およびCAR2、V_CAR2のビューを持っていることを前提としています。

セミラール、私は2つのビューから選択したいと思います。このような何か:私はこれを行うことはできません

select v_c1.NAME, v_c2.Type from V_CAR1 v_c1, V_CAR2 v_c2; 

は、私のsqqldeveloperはただ答えを考え出すせず、永遠に動作します。また、別のビューから値を取得するビューを作成する必要があります。私は問題は同じだろうと思う。私は間違って何をしていますか?

私はOracleを使用しています

+2

Oracleを使用していますか?なぜ結合条件がないのですか? – jarlh

+0

私はデータベースにはまだまだ新しいので、あまり経験はありません。私はそれをチェックしようとします –

+2

'cos.modelType'と' c2.modelType'のすべての可能な組み合わせを生成するこのように書くと、あなたのクエリはあなたに 'CROSS JOIN'を与えます。これは、生成して戻すために多くの行になる可能性があり、データが返されるまでには時間がかかりそうな理由が考えられます。 –

答えて

0

前述のとおり、ステートメントには結合がありません。

ここではジョインについて読むことができます。 http://www.w3schools.com/sql/sql_join.asp

内部結合の例は次のとおりです。私は車のメイク/モデルがそれぞれの人に関連付けられていることを知りたい。

私の個人情報は1つのテーブル内にあり、車の情報は別のテーブル内にあります。

2つのテーブルには2つのカラムがあり、私は自分が望むものを私に与えることができます。 refおよびsubref

テーブル;

V_CAR1 v_c1;

Name | Surname | Ref | Subref 
John Doe  100 1 
John Smith  100 2 
Jim Doe  200 1 
Jim Smith  200 2 

V_CAR2 v_c2;

Ref | Subref | Make | Model 
100 1  Nissan Sunny 
100 2  Ford  Focus 
200 1  Honda Civic 
200 2  Fiat  500 

例文は次のとおりです。

SELECT v_c1.Name, v_c1.Surname, v_c2.Make, v_c2.Model 
FROM VCAR1 v_c1 
INNER JOIN VCAR2 v_c2 
on (v_c1.ref = v_c2.ref and v_c1.subref = v_c2.subref) 

これは、

Name | Surname | Make | Model 
John Doe  Nissan Sunny 
John Smith  Ford  Focus 
Jim Doe  Honda Civic 
Jim Smith  Fiat  500 

この情報を参考にしてください。

+0

私はおそらくより一般的に使用され、良い出発点であるので、私は内部結合を選択しました。 – RDKells

+0

@Mor_snowはこのヘルプをまったく行いますか? – RDKells

+0

@MOR_SNOW補正*何らかの理由で、前のコメントを編集できません。 – RDKells

関連する問題