Eine union
würde zu deinem Problem passen. Einige Datenmengen sind erforderlich, um beiden Seiten der Vereinigung die gleiche Anzahl und den gleichen Spaltentyp zu geben:
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
Arbeitsbeispiel bei SQL Fiddle.
Um die Ergebnismenge nach Belieben zu formatieren, iterieren Sie über die Ergebnismenge. Wenn die group_id
Änderungen, drucken Sie einen # Group N #
Kopfzeile.
Es sollte keine Notwendigkeit für andere Schleifen oder Iterationen auf der Client-Seite geben, nur ein foreach
oder Äquivalent über den Satz von Zeilen, die von der Abfrage zurückgegeben werden.