Искате да направите това:
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