U wilt dit doen:
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
Bijwerken
Ik heb gemerkt dat, hoewel je twee verschillende tabellen hebt, je lid wordt van de ID's, dat wil zeggen, als je 1 hebt in beide tabellen krijgt u slechts één exemplaar. Als dat het gewenste gedrag is, moet je je houden aan UNION . Zo niet, ga dan naar UNION ALL .
Dus ik merk ook dat als je verandert naar de code die ik heb voorgesteld, je beide 1 . krijgt en 2 (van beide a en b ). In dat geval wilt u misschien de voorgestelde code wijzigen in:
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