2014-10-01 62 views
0

我需要從oracle中的多個表中選擇一些日期。我有2個表,表A表B應該加入彼此。讓我用表格來描述它。更好的加入查詢性能

表A

A_id x_id y_id z_id price .... 

表B

B_id xyz_id myValue 

NOT:X_ID,y_id和z_id保持與(表B)相同的值.xyz_id

我的查詢應返回

A_id, x_id, y_id, z_id, myValue for x_id, myValue for y_id, myValue for z_id 

我喜歡管理

select 
    A_id, 
    (select myValue as valueForX_id from TableB where xyz_id = x_id) 
    (select myValue as valueForY_id from TableB where xyz_id = y_id).., 
from TableA; 

該查詢,但我不知道這會給最好的性能。我請求你的建議。謝謝。

回答

0

這應該得到使用連接的值。我認爲你會發現這對大數據集執行速度要快得多。

select a.A_id, a.x_id, a.y_id, a.z_id, x.myValue as x_value,yb.myValue as y_value, z.myValue as z_value 
from TableA a 
join TableB x on x.xyz_id = a.x_id 
join TableB y on y.xyz_id = a.y_id 
join TableB z on z.xyz_id = a.z_id