我在添加存在条件之前有一个查询。添加存在条件后,它将永远进入循环而不会返回任何结果。我认为主要原因是每行记录的完整扫描。谁能告诉我们如何避免这种情况。下面的查询是我想要实现的一个例子。
基本上条件是汽车可以有很多零件,如果任何一个零件更新了该车的更改,我们想要拿起所有零件。该部分有详细信息表,我想查看详细信息表的更新。
select c.id, p.id
from car c join part p on p.car_id=c.id
where exists (
select 1
from part p join pdetl pd on p.id=pd.part_id
where p.car_id=c.id and pd.updated_on > ?
)
答案 0 :(得分:0)
已编辑:已修改查询以获取与已更新部件的汽车相关联的所有部件。
内部查询获取已更新的部分。外部查询然后拉出与汽车相关的所有零件:
select c.id, p.id
from car c join part p on p.car_id=c.id
where c.id in
(
select c.id
from car c join part p on p.car_id=c.id
where exists (
select 1
from pdetl pd
where p.id=pd.part_id
and pd.updated_on > ?
)
)