2016-12-03 138 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);

相關問題