あなたはこれをしたい:
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
更新
2つの異なるテーブルがある場合でも、IDを結合することに気付きました。つまり、1がある場合です。 両方のテーブルで、発生するのは1つだけです。それが望ましい動作である場合は、UNIONに固執する必要があります 。そうでない場合は、UNION ALLに変更します 。
したがって、私が提案したコードに変更すると、両方の1を取得し始めることにも気づきました。 および2 (両方のaから およびb )。その場合、提案されたコードを次のように変更することをお勧めします。
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