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