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