有没有办法让在Oracle 11g的子查询像一个别名:有没有办法在Oracle 11g SQL中为子查询提供一个别名?
select *
from
(select client_ref_id, request from some_table where message_type = 1) abc,
(select client_ref_id, response from some_table where message_type = 2) defg
where
abc.client_ref_id = def.client_ref_id;
否则,有没有办法加入基础上,client_ref_id两个子查询。我意识到有一个自我连接,但在自我连接上运行的数据库可能需要5分钟才能完成(在我正在运行的实际查询中有一些额外的逻辑,但我确定了自连接是什么造成这个问题)。单独的子查询只需要几秒钟即可完成。自连接查询看起来像:
select st.request, st1.request
from
some_table st, some_table st1
where
st.client_ref_id = st1.client_ref_id;
只是好奇,接受的答案表现如何? – DCookie 2010-06-17 21:23:15
你还没有想出它是自联接。制作表格,索引和统计数据的完全相同的副本,并查看是否获得相同的时间。更好的问题是,“帮助我调整这个查询”并发布完整查询和解释计划。 – 2010-06-17 22:22:08