union
by vyhovovalo vašemu problému. Je vyžadována určitá masáž dat, aby obě strany svazku měly stejný počet a typ sloupců:
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
Chcete-li sadu výsledků naformátovat, jak chcete, iterujte sadu výsledků. Když je group_id
změny, vytiskněte # Group N #
záhlaví.
Na straně klienta by nemělo být potřeba mít další smyčky nebo iterace, stačí jeden foreach
nebo ekvivalent přes sadu řádků vrácených dotazem.