union
あなたの問題に合うでしょう。ユニオンの両側に同じ数とタイプの列を与えるには、データマッサージが必要です:
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
結果セットを好きなようにフォーマットするには、結果セットを繰り返し処理します。 group_id
の場合 変更するには、# Group N #
を印刷します ヘッダー。
クライアント側で他のループや反復を行う必要はなく、foreach
を1つだけにする必要があります。 または、クエリによって返される行のセットと同等です。