2016-11-18 71 views
0

假設CAR1和CAR2是表格。然後,我可以這樣做:從視圖中的不同視圖中選擇值

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

現在假設我們有一個CAR 1視圖中調用V_CAR1,和CAR2,V_CAR2視圖。

Semilar,我想從2個視圖中進行選擇。這樣的事情:

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

我不能這樣做,我的sqqldeveloper只是永遠的工作,沒有拿出一個答案。我還需要創建一個視圖,這將不得不從另一個角度拉取值。我猜這個問題會是一樣的。我究竟做錯了什麼?

我正在使用Oracle

+2

您使用的是Oracle嗎?爲什麼沒有加入條件? – jarlh

+0

我對數據庫還很新,所以我沒有太多經驗。我會嘗試檢查它 –

+2

如果你這樣寫,你的查詢會給你一個'CROSS JOIN',它將產生'c1.modelType'和'c2.modelType'的所有可能的組合。這可能會變成很多行來生成和返回,這很可能是數據返回需要這麼長時間的原因。 –

回答

0

如上所述,您的語句沒有連接。

你可以在這裏閱讀關於連接; http://www.w3schools.com/sql/sql_join.asp

一個內部連接的例子是;我想知道與每個人相關的汽車製造商/型號。

我的個人信息位於一張表內,汽車信息位於另一張表內。

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