Du vil gøre dette:
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
Opdater
Jeg har bemærket, at selvom du har to forskellige tabeller, tilslutter du dig ID'erne, det betyder, at hvis du har 1
i begge tabeller får du kun én forekomst. Hvis det er den ønskede adfærd, bør du holde dig til UNION
. Hvis ikke, skift til UNION ALL
.
Så jeg bemærker også, at hvis du ændrer til den kode, jeg foreslog, ville du begynde at få både 1
og 2
(fra både a
og b
). I så fald vil du måske ændre den foreslåede kode til:
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