Chcesz to zrobić:
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
Aktualizacja
Zauważyłem, że chociaż masz dwie różne tabele, dołączasz identyfikatory, to znaczy, jeśli masz 1
w obu tabelach otrzymujesz tylko jedno wystąpienie. Jeśli jest to pożądane zachowanie, powinieneś trzymać się UNION
. Jeśli nie, zmień na UNION ALL
.
Zauważyłem też, że jeśli zmienisz kod, który zaproponowałem, zaczniesz otrzymywać oba 1
i 2
(z obu a
i b
). W takim przypadku możesz zmienić proponowany kod na:
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