2016-12-03 20 views
0

別のテーブルの選択結果に基づいて、あるテーブルから行を返そうとしていますが、SQL/Oracleに精通していません。両者を結びつけるのに苦労している。別のテーブルから選択した結果に基づいて1つのテーブルから選択

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

あなたはSELECT ITEM_ID、ITEM_STATE

SQL

以下、ORIG_TRANS TRANS IN(DESP = 680 DEFS FROM SELECT TRANS)項目から試すことができます。

関連する問題