union
pasowałby do twojego problemu. Aby nadać obu stronom unii taką samą liczbę i typ kolumn, wymagana jest pewna masa danych:
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
Aby sformatować zestaw wyników, jak chcesz, przeprowadź iterację zestawu wyników. Gdy group_id
zmiany, wydrukuj # Group N #
nagłówek.
Nie powinno być potrzeby posiadania innych pętli lub iteracji po stronie klienta, wystarczy jedna foreach
lub odpowiednik zbioru wierszy zwróconych przez zapytanie.