sql >> Databasteknik >  >> RDS >> Mysql

VÄLJ från två tabeller baserade på samma id och grupperade

En union skulle passa ditt problem. Viss datamassage krävs för att ge båda sidor av förbundet samma antal och typ av kolumner:

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

Fungerande exempel på SQL Fiddle.

För att formatera resultatuppsättningen som du vill, iterera över resultatuppsättningen. När group_id ändringar, skriv ut en # Group N # rubrik.

Det borde inte finnas något behov av att ha andra loopar eller iterationer på klientsidan, bara en foreach eller motsvarande över uppsättningen rader som returneras av frågan.



  1. Datatabeller som sammanfogar tabeller sök och ordning fast med codeigniter

  2. Använder OASIS-SVN och git för åtkomst till källkodskontroll

  3. Hur man bestämmer värden för saknade månader baserat på data från tidigare månader i T-SQL

  4. Filtrera DataGrid för namn med TextBox dynamiskt