Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

CHỌN từ hai bảng dựa trên cùng một id và được nhóm lại

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tạo một bảng mysql với một biến PHP

  2. aws - ec2 - mysql - instance stop, reboot - password của người dùng khác đã thay đổi

  3. Làm thế nào để kiểm tra trong một bảng khác không có dữ liệu trong khi thực hiện tham gia mysql?

  4. Nhận tất cả các ID đã chèn khi chèn nhiều hàng bằng một truy vấn duy nhất

  5. MySQL Chèn có điều kiện trên bản sao