【发布时间】:2012-03-13 10:59:06
【问题描述】:
我有以下表格:
-
表 1 - 节点(我通过
DB_LINK访问它):SITE_ID LATITUDE LONGITUDE ABC123 21.018 -89.711 CDE456 20.35 -87.349 FGH789 20.258 -87.406 ABB987 18.54 -88.302 CFF546 18.542 -88.273 GHT553 18.52 -88.311 -
表 2 - 链接
ID SITE_A SITE_B STATUS NAME LINK_TYPE REGION ---> Many other fields 1 ABC123 GHT553 2 FGH789 CFF546 3 CDE456 ABC123 4 CFF546 GHT553 -
表 3 - 结果(这是我想要实现的) - 无论顺序如何
LINK_ID SITE_A_ID LAT_SITE_A LON_SITE_A SITE_B_ID LAT_SITE_B LON_SITE_B 1 ABC123 21.018 -89.711 GHT553 18.52 -88.311 2 FGH789 20.258 -87.406 CFF546 18.542 -88.273 3 CDE456 20.35 -87.349 ABC123 21.018 -89.711 4 CFF546 18.542 -88.273 GHT553 18.52 -88.311
(加上其他几个字段,这对我来说没有问题)
这是我尝试过的:
SELECT RES2.*, SAM2.LATITUDE LAT_SITE_B, SAM2.LONGITUDE LON_SITE_B FROM(
SELECT RES1.*, NOD.LATITUDE LAT_SITE_A, NOD.LONGITUDE LON_SITE_A FROM(
SELECT ID, SITE_A, SITE_B, STATUS, NAME, LINK_TYPE FROM LINKS
WHERE SITE_A IS NOT NULL AND SITE_B IS NOT NULL AND REGION IN (8,6)
)RES1, NODES@NODES_DBLINK NOD WHERE RES1.SITE_A = NOD.SITE_ID
)RES2, NODES@NODES_DBLINK NOD2
WHERE RES2.SITE_B = NOD2.SITE_ID;
在SELECT RES1.\* 之前,一切正常,但是当我添加SELECT RES2.\* 时,需要很长时间才能返回任何内容。
【问题讨论】:
-
为什么是子查询?为什么不直接将链接与节点连接两次?
标签: oracle select append resultset