2016-12-03 139 views
0

我试图从一个表中返回行,这是基于从另一个表中选择的结果,但是我不熟悉SQL/Oracle并且努力将两者联系在一起。根据从另一个表中选择的结果从一个表中选择

ITEMS     DEFS 
item_id (1000)  trans (1125) 
item_state (Y)  desp (680) 
trans (1125) 
orig_trans (1100) 

总体来说,我想查询defs.desp数量,并返回items.item_id,items.item_state和items.orig_trans,但如果我需要一个连接或子查询(我不能告诉!或者,如果我想要实现在首位),甚至有可能

我想是这样的:

SELECT I.ITEM_ID, I.ITEM_STATE, I.ORIG_TRANS 
FROM ITEMS I 
JOIN DEFS DF 
ON I.TRANS = (*FIND 'TRANS' FROM DEFS TABLE USING THE DESP NUMBER BELOW*) 
WHERE DF.DESP = 680 

和最终所需的输出感:

ITEM_ID ITEM_STATE ORIG_TRANS 
1000  Y    1100 

由于我的最终输出需要来自ITEMS表,所以返回事物的顺序是什么,但我需要找到的第一件事情是来自DEFS表的TRANS号码?

回答

0

是不是你所需要的?

SELECT I.ITEM_ID, I.ITEM_STATE, I.ORIG_TRANS 
FROM ITEMS I 
JOIN DEFS DF 
ON I.TRANS = DF.TRANS 
WHERE DF.DESP = 680 
0

尝试:

SELECT I.ITEM_ID, I.ITEM_STATE, I.ORIG_TRANS 
FROM ITEMS I 
JOIN (
SELECT TRANS FROM DEFS WHERE DESP = 680 
) DF 
ON I.TRANS = DF.TRANS 
0

您可以尝试SQL

下面

SELECT ITEM_ID,ITEM_STATE,ORIG_TRANS从装备WHERE TRANS IN( SELECT TRANS FROM DEFS WHERE DESP = 680);

相关问题