Một union
sẽ phù hợp với vấn đề của bạn. Một số thao tác dữ liệu được yêu cầu để cung cấp cho cả hai mặt của liên kết có cùng số lượng và loại cột:
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
Ví dụ làm việc trong SQL Fiddle.
Để định dạng tập hợp kết quả theo ý muốn, hãy lặp lại tập kết quả. Khi group_id
thay đổi, in một # Group N #
tiêu đề.
Không cần phải có các vòng lặp hoặc lặp lại khác ở phía máy khách, chỉ cần một foreach
hoặc tương đương trên tập hợp các hàng được trả về bởi truy vấn.