如何使用原始查询中获得的结果执行子查询?

时间:2011-07-14 18:41:49

标签: sql db2 subquery

以下是我的情况..我必须获取给定quoteId的所有相关案例,这需要连接3个表,我能够为此提出查询。下面是示例:为简洁起见,我省略了一些表名,仅使用了别名。

SELECT distinct caseTable.CASEID, quoteHdrTable.Case_UID FROM 
caseTable INNER JOIN quoteHdrTable ON
quoteHdrTable.Case_UID = caseTable.Case_UID WHERE quoteHdrTable.QUOTE_ID = '12345'.

现在,对于每个返回的CASE_UID,我还需要从另一个表中显示其状态。结构如下。

STATUS_TABLE
CASE_UID         STATUS
------------   -----------
123               Good
234               Bad.
345               {null}

最后我想要一个像

这样的结果
result
case_ID   case_UID       status
001         123           Good

我们可以使用子查询使用第一个结果(case_UID)来执行第二个SQL。请提供指针或示例SQL语句。

FYI ..使用DB2数据库

由于 和Sandeep

2 个答案:

答案 0 :(得分:0)

SELECT distinct c.CASEID, q.Case_UID, s.status
FROM caseTable c 
INNER JOIN quoteHdrTable q ON q.Case_UID = c.Case_UID
LEFT JOIN StatusTable s ON s.CASE_UID = q.CASE_UID
WHERE quoteHdrTable.QUOTE_ID = '12345'

为什么不添加另一个JOIN

答案 1 :(得分:0)

SELECT      distinct 
            caseTable.CASEID,
            quoteHdrTable.Case_UID,
            status.STATUS
FROM        caseTable 
INNER JOIN  quoteHdrTable 
ON          quoteHdrTable.Case_UID = caseTable.Case_UID
INNER JOIN  STATUS_TABLE status
ON          quoteHdrTable.Case_UID = status.Case_UID
WHERE       quoteHdrTable.QUOTE_ID = '12345'