如果select查询位于where子句的左侧而不是我们通常使用的右侧,将会是一个问题。
select * from ABC A where (select ID from XYZ) in (A.ID, A.PID);
在查询的左侧可以进行 select 查询吗?
答案 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)
但是第一个解决方案应该是首选。