Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
oracle sql中的AND和OR_Sql_Oracle - Fatal编程技术网

oracle sql中的AND和OR

oracle sql中的AND和OR,sql,oracle,Sql,Oracle,我需要写一些东西,比如: select * from HR_EMP_TRANSFER t1, HR_EMP_PROFILE_MSTR_TT t2 where (t1.APPROVAL_STATUS='P' and t1.EMPNO = '13724') OR (t2.APPROVAL_STATUS='P' and t2.EMPNO = '13724') 但目前,它并没有给我的结果只有EMPNO13724 这两个表具有不同的表结构。但这两列是相同的。我只需要将这两个查询组合起来,并检查

我需要写一些东西,比如:

select * 
from HR_EMP_TRANSFER t1, HR_EMP_PROFILE_MSTR_TT t2 
where (t1.APPROVAL_STATUS='P' and t1.EMPNO = '13724')
   OR (t2.APPROVAL_STATUS='P' and t2.EMPNO = '13724')
但目前,它并没有给我的结果只有EMPNO13724

这两个表具有不同的表结构。但这两列是相同的。我只需要将这两个查询组合起来,并检查它们是否返回任何值

select * from HR_EMP_TRANSFER t1 where t1.APPROVAL_STATUS='P' and t1.EMPNO = '13724'

 select * from HR_EMP_PROFILE_MSTR_TT t2 where t2.APPROVAL_STATUS='P' and t2.EMPNO = '13724'

您可能需要
全部联合

SELECT t1.*
FROM HR_EMP_TRANSFER t1
WHERE t1.APPROVAL_STATUS='P' and t1.EMPNO = '13724'
UNION ALL
SELECT t2.*
FROM HR_EMP_PROFILE_MSTR_TT t2 
WHERE t2.APPROVAL_STATUS='P' and t2.EMPNO = '13724';

这假设两个表具有相同的结构(相同的列、相同的顺序、相同的类型)。它以单独的行而不是一行返回记录。

您可以使用
完全外部联接:

SELECT * 
FROM   HR_EMP_TRANSFER t1
       FULL OUTER JOIN
       HR_EMP_PROFILE_MSTR_TT t2
       ON (    t1.APPROVAL_STATUS = t2.APPROVAL_STATUS
           AND t1.EMPNO = t2.EMPNO )
WHERE (t1.APPROVAL_STATUS='P' and t1.EMPNO = '13724')
   OR (t2.APPROVAL_STATUS='P' and t2.EMPNO = '13724')

您可以通过使用SQLJOIN来实现这一点

select * from HR_EMP_TRANSFER t1 
 inner join HR_EMP_PROFILE_MSTR_TT t2 on t1.APPROVAL_STATUS = t2.APPROVAL_STATUS and t1.EMPNO = t2.EMPNO
where t1.EMPNO = 13724 and t1.APPROVAL_STATUS='P'

没有连接条件?也许您应该改为使用UNION ALL?我想您可能会遇到一个编辑问题并提供示例数据和所需结果的问题。@user2093576如果您只对“是否存在任何行”感兴趣,请不要选择“t1.*”,而选择“t1.EMPNO”(对于t2也是如此)