繁体   English   中英

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

[英]Select from one table based on results of select from another table

我试图根据另一个表的选择结果返回一个表中的行,但是我对SQL / Oracle并不熟悉,并且很难将两者链接在一起。

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

总的来说,我正在尝试查询defs.desp编号,并返回items.item_id,item.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编号?

这不是您所需要的吗?

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

尝试:

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

你可以尝试下面的SQL

从要转移的项目中选择ITEM_ID,ITEM_STATE,ORIG_TRANS(从DEFS中的选择转移中DESP = 680);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM