我需要从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 :(得分: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