0

我想像这样在 oracle 数据库中过滤我的数据,我知道这个查询是错误的,还有其他可能的方法吗?目前我正在尝试这样做。

   SELECT apd.first_name,
       apd.middle_name,
       apd.last_name,
       apd.first_thi_nme,
       apd.middle_thi_nme,
       apd.last_thi_nme
FROM applicant_detail apd
WHERE apd.application_number IN
    ( SELECT **apd.application_number,
               apd.industry_type_cde**
     FROM a_detail apd,
          a_type apt
     WHERE apt.application_number=apd.application_number
       AND apt.identification_code=apd.identification_code
       AND apt.guarantor_type='I' )

// 我必须在这两列基础上找到重新编码,它们都相同,它们返回唯一或任何其他方式来传递这些apd.application_numberapd.industry_type_cdeinIN子句或任何其他。

知道我该怎么做吗?

4

4 回答 4

3

我正在使用 mysql 和 postgresql 以下在两者上都可以正常工作我认为它也可以在 oracle 上工作

WHERE (column1,column2) IN ( select col1,col2 .....rest of the query)
于 2013-01-11T06:55:34.943 回答
0

试试这个

WHERE apd.application_number in 
   (select apd.application_number FRoM ...)
OR
   apd.application_number in 
   (select apd.industry_type_cde FROM ...)
于 2013-01-11T06:48:47.513 回答
0

您可以使用联合:

select apd.application_number 
from a_detail apd,a_type apt
where 
    apt.application_number=apd.application_number and 
    apt.identification_code=apd.identification_code and
    apt.guarantor_type='I'
UNION
select apd.industry_type_cde 
from a_detail apd,a_type apt
where 
    apt.application_number=apd.application_number and
    apt.identification_code=apd.identification_code and
    apt.guarantor_type='I'
于 2013-01-11T06:50:01.380 回答
0

最好显示表模式。但是JOIN可以模拟IN:)

 SELECT apd.first_name,
       apd.middle_name,
       apd.last_name,
       apd.first_thi_nme,
       apd.middle_thi_nme,
       apd.last_thi_nme
FROM applicant_detail apd
JOIN 
    (SELECT apd.application_number,
               apd.industry_type_cde
     FROM a_detail apd 
     INNER JOIN
     a_type apt
     ON apt.application_number=apd.application_number
       WHERE apt.identification_code=apd.identification_code
       AND apt.guarantor_type='I' ) as X
ON apd.application_number = CONCAT(X.application_number, X.industry_type_cde)
;
于 2013-01-11T07:10:52.687 回答