Chcete provést toto:
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
Aktualizovat
Všiml jsem si, že i když máte dvě různé tabulky, spojujete ID, to znamená, že pokud máte 1 v obou tabulkách máte pouze jeden výskyt. Pokud je to požadované chování, měli byste se držet UNION . Pokud ne, změňte to na UNION ALL .
Takže jsem si také všiml, že pokud změníte kód, který jsem navrhl, začnete dostávat oba 1 a 2 (z obou a a b ). V takovém případě možná budete chtít změnit navrhovaný kód 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