Anda ingin melakukan ini:
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
Perbarui
Saya perhatikan bahwa meskipun Anda memiliki dua tabel yang berbeda, Anda menggabungkan ID, itu berarti, jika Anda memiliki 1
di kedua tabel, Anda hanya mendapatkan satu kemunculan. Jika itu perilaku yang diinginkan, Anda harus tetap berpegang pada UNION
. Jika tidak, ubah ke UNION ALL
.
Jadi saya juga memperhatikan bahwa jika Anda mengubah ke kode yang saya usulkan, Anda akan mulai mendapatkan keduanya 1
dan 2
(dari keduanya a
dan b
). Dalam hal ini, Anda mungkin ingin mengubah kode yang diusulkan menjadi:
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