Có cách nào để cho một subquery trong Oracle 11g một bí danh như:Có cách nào để cung cấp cho một truy vấn phụ một bí danh trong 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;
Nếu không có cách nào để tham gia hai truy vấn phụ dựa trên client_ref_id. Tôi nhận ra có một tham gia tự, nhưng trên cơ sở dữ liệu tôi chạy trên tự tham gia có thể mất đến 5 phút để hoàn thành (có một số logic phụ trong truy vấn thực tế tôi đang chạy nhưng tôi đã xác định tham gia tự là gây ra vấn đề). Các truy vấn phụ riêng lẻ chỉ mất vài giây để hoàn thành bởi bản thân chúng. Truy vấn tự tham gia trông giống như sau:
select st.request, st1.request
from
some_table st, some_table st1
where
st.client_ref_id = st1.client_ref_id;
Chỉ tò mò, câu trả lời được chấp nhận có hiệu quả như thế nào? – DCookie
Bạn đã không tìm ra đó là tự tham gia. Tạo một bản sao giống hệt nhau của bảng, chỉ mục và thống kê và xem bạn có nhận được cùng một thời điểm hay không. Câu hỏi hay hơn sẽ là, "Giúp tôi điều chỉnh truy vấn này" và đăng truy vấn ĐẦY ĐỦ, và kế hoạch giải thích. –