兩種關聯表的SQL的update的效率對比和優化


  1. 這個效率比較高的寫法
WITH componentTab AS (
    SELECT
        *
    FROM
        pgr_connectedComponents (
            'SELECT id,source,target,cost,reverse_cost FROM yh_map_supplypipe'
        )
) 
 UPDATE yh_map_supplypipe  SET componentid = componentTab.component from componentTab
 where  yh_map_supplypipe.SOURCE = componentTab.node

  2.這個效率比較低的寫法

WITH componentTab AS (
    SELECT
        *
    FROM
        pgr_connectedComponents (
            'SELECT id,source,target,cost,reverse_cost FROM yh_map_supplypipe'
        )
) 

UPDATE yh_map_supplypipe
SET componentid = (
    SELECT
        componentTab.component
    FROM
        yh_map_supplypipe,
        componentTab
    WHERE
        yh_map_supplypipe. SOURCE = componentTab.node
    LIMIT 1
)

注意:里面千萬不能用別名,會出現都是同一值的情況


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM