2016-04-26 81 views
0

有两个表,即闭包和代码。如何在两个表之间进行子查询

CLOSURE表中,有四列如下所示。

CLOSURE_SEQ  NUMBER    NOT NULL, 
SUPERTYPE_SEQ NUMBER    NOT NULL, 
SUBTYPE_SEQ  NUMBER    NOT NULL, 
VERSION_SEQ  NUMBER 

CODE表中,有两列如下所示。

CODE_SEQ  NUMBER    NOT NULL, 
CODE   VARCHAR2(64 CHAR) NOT NULL 

有两个表,在CLOSURESUPERTYPE_SEQSUBTYPE_SEQ之间的关系有码表参考CODE_SEQ

1,我想从CLOSURE得到(SUPERTYPE_SEQ, SUBTYPE_SEQ),属于'1'VERSION_SEQ以下。 select SUPERTYPE_SEQ, SUBTYPE_SEQ from CLOSURE where VERSION_SEQ = 1;它将返回这些行。

SUPERTYPE_SEQ  SUBTYPE_SEQ 
23984305    23984305 
23984306    23984306 
23984306    23984307 
23984307    23984308 

2,但是,我没有兴趣SUPERTYPE_SEQSUBTYPE_SEQ,相反,我希望通过整合代码表在一起,就像下面看到真正CODECODE表。

SUPERTYPE_CODE  SUBTYPE_CODE 
C027750    C027750 
C027751    C027751 
C027751    C027752 
C027752    C027753 

对我来说,这是有点难以解决,请你提供一些解决方案吗?其实,我仍然困惑这个问题是关于子查询。

回答

0

您需要2联接:

SELECT sup.CODE as SUPERTYPE_CODE, sub.CODE as SUBTYPE_CODE 
FROM CLOSURE c 
LEFT JOIN CODE sup on c.SUPERTYPE_SEQ = sup.CODE_SEQ 
LEFT JOIN CODE sub on c.SUBTYPE_SEQ = sub.CODE_SEQ 
+0

哇,效果很好。非常感谢!! –

相关问题