Sebuah union
akan sesuai dengan masalah Anda. Beberapa pemijatan data diperlukan untuk memberikan kedua sisi gabungan jumlah dan jenis kolom yang sama:
select group_id
, id as item_id
, name
, description
, source_table
from (
select id
, user_id
, group_id
, name
, description
, 'from table1' source_table
from table1
union all
select id
, user_id
, group_id
, name
, description
, 'from table2' -- Column name is already defined above
from table2
) as SubQueriesMustBeNamed
where user_id = 1
order by
group_id
, name
Untuk memformat kumpulan hasil sesuka Anda, ulangi kumpulan hasil. Ketika group_id
perubahan, cetak # Group N #
tajuk.
Seharusnya tidak perlu memiliki loop atau iterasi lain di sisi klien, cukup satu foreach
atau setara di atas kumpulan baris yang dikembalikan oleh kueri.