我有两张桌子。第一个表(表p)的一些记录存在于第二个表(表c)中。 我的任务是在某些条件下从表c中获取一些数据(保持一定的顺序)并附加表p中的其余条目。我正在使用以下查询。
select *
from(
with c_data as (select pId from table c where eid=1234 and pId is not null order by id desc)
select p.id,1 as filter
from table p and p.id in (select distinct pId from c_data)
union
select p.id,2
from table p where p.eid=1234 and p.id not in (select distinct pId from c_data ))order by filter
现在测试数据如下: 第一个查询的输出,单独运行
p.id
----
586
568
589
854
741
254
789
954
365
第二个查询的输出单独运行
981
555
正在申请" p.id not in (select distinct pId from c_data )
"。
但是当我附加这部分时,查询第一部分的顺序正在变得缓和