根据从另一个表中选择的结果从一个表中选择

时间:2016-12-03 17:22:33

标签: sql oracle

我试图根据另一个表中的select的结果从一个表中返回行,但我不熟悉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号? / p>

3 个答案:

答案 0 :(得分: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

答案 1 :(得分: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

答案 2 :(得分:0)

您可以尝试以下SQL

  

从ITEMS中选择ITEM_ID,ITEM_STATE,ORIG_TRANS TRANSING(   SELECT TRANS FROM DEFS WHERE DESP = 680);