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