Du vill göra detta:
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
Uppdatera
Jag märkte att även om du har två olika tabeller så går du med i ID:n, det betyder att om du har 1
i båda tabellerna får du bara en förekomst. Om det är det önskade beteendet bör du hålla dig till UNION
. Om inte, ändra till UNION ALL
.
Så jag märker också att om du ändrar till koden jag föreslog, skulle du börja få både 1
och 2
(från båda a
och b
). I så fall kanske du vill ändra den föreslagna koden till:
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