Искате да направите това:
select * from
(
SELECT id, 2 as ordered FROM a -- returns 1,4,2,3
UNION
SELECT id, 1 as ordered FROM b -- returns 2,1
)
order by ordered
Актуализиране
Забелязах, че въпреки че имате две различни таблици, вие се присъединявате към идентификаторите, което означава, че ако имате 1 и в двете таблици получавате само едно събитие. Ако това е желаното поведение, трябва да се придържате към UNION . Ако не, променете на UNION ALL .
Така че също забелязвам, че ако промените кода, който предложих, ще започнете да получавате и двете 1 и 2 (от двете a и b ). В този случай може да искате да промените предложения код на:
select distinct id from
(
SELECT id, 2 as ordered FROM a -- returns 1,4,2,3
UNION
SELECT id, 1 as ordered FROM b -- returns 2,1
)
order by ordered