选择条件条件左侧的语句

时间:2019-04-24 10:00:33

标签: sql oracle

如果select查询位于where子句的左侧而不是我们通常使用的右侧,将会是一个问题。

select * from ABC A where (select ID from XYZ) in (A.ID, A.PID);

在查询的左侧可以进行 select 查询吗?

3 个答案:

答案 0 :(得分:2)

我认为exists是您想要的:

select a.*
from ABC a
where exists (select 1
              from XYZ x
              where x.id in (A.ID, A.PID)
             );

答案 1 :(得分:0)

您可以使用LOCAL_STATIC_JAVA_LIBRARIES += android-support-v4

处理此问题
JOIN

答案 2 :(得分:0)

有一个叫做INNER JOIN的东西可以解决这个问题。

select A.* 
from ABC A
INNER JOIN XYZ X ON X.ID = A.ID OR X.ID = A.PID

不需要任何where子句,因为这将过滤结果。

或者您可以通过执行以下操作来实现:

SELECT *
FROM ABC
WHERE 
ABC.ID IN (select ID from XYZ) 
OR ABC.PID IN (select ID from XYZ)

但是第一个解决方案应该是首选。