這對於很多人來說可能是一個相當微不足道的問題,但我不習慣寫子查詢和連接,所以我希望有人想要幫助。加入並比較2表中的2個查詢
我有兩個表:new_road和old_roads。
這兩個查詢總結了屬於特定道路編號的道路的長度。
SELECT new_road.nummer, SUM(new_road.length) FROM road_table.road GROUP BY new_road.nummer
SELECT old_road.nummer, SUM(ST_length(old_road.geom)) FROM old_road_table.old_road GROUP BY old_road.nummer
我希望有一個結果表,其中這兩個查詢加入,所以我可以比較每個道路編號的新舊累計長度。
像
old.nummer old.length new.nummer new.lenght
2345 10.3 2345 10.5
2346 578.2 2346 600
2347 54.2 NULL NULL
NULL NULL 2546 32.2
我覺得聯接需要一個外部的一些版本,因爲會出現在old_road表中的路號碼不會在new.road表存在的,我想看看他們太。
欣賞任何建議
編輯:
意見後從下面我纔想出了這個:
SELECT * FROM
(SELECT new_road.nummer, SUM(new_road.length) FROM road_table.road GROUP BY new_road.nummer) new_table
FULL OUTER JOIN
(SELECT old_road.nummer, SUM(ST_length(old_road.geom)) FROM old_road_table.old_road GROUP BY old_road.nummer) old_table
ON new_road.nummer = old_road.nummer
但每次我運行它的時候我得到失蹤子句條目。當我單獨運行每個子查詢時,它們都會工作。我對文檔進行了交叉檢查,對我來說看起來還不錯,但顯然我在這裏錯過了一些東西。
感謝您的回答。我嘗試了你的和我得到的其他答案。但是每次運行它時都會丟失FROM子句條目。當我通過它自己運行每個子查詢時,它們就工作了。我對文檔進行了交叉檢查,對我來說看起來還不錯,但顯然我在這裏錯過了一些東西。
SELECT * (SELECT new_road.nummer,SUM(new_road.length)FROM road_table.road GROUP BY new_road.nummer)NEW_TABLE FULL OUTER JOIN (SELECT old_road.nummer,SUM(ST_length(old_road.geom))FROM old_road_table.old_road GROUP BY old_road.nummer)old_table ON new_road.nummer = old_road.nummer – geogrow
它們都在同一個數據庫中嗎?是road_table和old_road_table模式? – mxix