Gibt es eine Möglichkeit, eine Unterabfrage in Oracle geben 11g einen Aliasnamen wie:Gibt es eine Möglichkeit, eine Unterabfrage in Oracle 11g SQL mit einem Alias zu versehen?
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;
Ansonsten gibt es eine Möglichkeit, die beiden Unterabfragen auf der client_ref_id Basis zu verbinden. Ich weiß, dass es einen Self-Join gibt, aber auf der Datenbank, auf der ich arbeite, kann ein Self-Join bis zu 5 Minuten dauern (es gibt eine zusätzliche Logik in der eigentlichen Abfrage, aber ich habe festgestellt, dass der Self-Join ist.) verursacht das Problem). Die einzelnen Unterabfragen dauern nur wenige Sekunden. Die Self-Join-Abfrage sieht ungefähr so aus:
select st.request, st1.request
from
some_table st, some_table st1
where
st.client_ref_id = st1.client_ref_id;
Nur neugierig, wie gut hat die angenommene Antwort ausgeführt? – DCookie
Sie haben nicht herausgefunden, dass es sich um den Self-Join handelt. Machen Sie eine identische Kopie der Tabelle, Indizes und Statistiken und sehen Sie, ob Sie das gleiche Timing erhalten. Die bessere Frage wäre gewesen: "Hilf mir, diese Abfrage abzustimmen" und habe die FULL-Abfrage und den EXPLAIN-Plan gepostet. –