在MySQL中使用union维护订单

时间:2018-06-18 10:50:46

标签: mysql

我有两张桌子。第一个表(表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 )"。

但是当我附加这部分时,查询第一部分的顺序正在变得缓和

0 个答案:

没有答案