亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PostgreSQL中的橫向查詢和子查詢有什么區別?

PostgreSQL中的橫向查詢和子查詢有什么區別?

PIPIONE 2019-06-06 14:31:20
PostgreSQL中的橫向查詢和子查詢有什么區別?因為Postgres有能力LATERAL加入,我一直在閱讀它,因為我目前為我的團隊做了復雜的數據轉儲,有很多效率低下的子查詢,使得整個查詢需要四分鐘或更長時間。我明白LATERALJOIN也許可以幫助我,但即使在閱讀了以下文章之后這一個從堆分析,我仍然不太明白。的用例是什么?LATERAL加入?.‘>之間的區別是什么?LATERAL加入和子查詢?
查看完整描述

3 回答

?
拉風的咖菲貓

TA貢獻1995條經驗 獲得超2個贊

非-lateral和一個lateral連接取決于是否可以查看左手表的行。例如:

select  *from    table1 t1cross join lateral        (
        select  *
        from    t2        where   t1.col1 = t2.col1 -- Only allowed because of lateral
        ) sub

這種“向外看”意味著必須對子查詢進行多次計算。畢竟,t1.col1可以假定很多值。

相反,非-lateral可以對聯接進行一次評估:

select  *from    table1 t1cross join
        (
        select  *
        from    t2        where   t2.col1 = 42 -- No reference to outer query
        ) sub

如所需lateral,內部查詢在任何方面都不依賴于外部查詢。一個lateral查詢是correlated查詢,因為它與查詢本身之外的行有關聯。


查看完整回答
反對 回復 2019-06-06
  • 3 回答
  • 0 關注
  • 1290 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號