sql >> Database teknologi >  >> RDS >> Oracle

Vælg alle kolonner fra tabel 1 og en kolonne fra tabel to, som er grupperet efter?

Jeg ville bruge listagg() i en underforespørgsel:

select t1.*, xmlagg
from table1 t1 join
     (select name2, listagg(mother_name, ',') within group (order by mother_name) as xmlagg
      from table2 t2
      group by name2
     ) t2
     on t1.name1 = t2.name2;

EDIT:

Ovenstående forespørgsel foretager aggregeringen før joinforbindelsen, så den kan bruge t1.* . Du kan også gøre det efter tilslutningen:

select t1.name, listagg(mother_name, ',') within group (order by mother_name)
from table1 t1 join
     table2 t2
     on t1.name1 = t2.name2
group by t1.name;

Denne formular gør det sværere at tilføje yderligere kolonner til select , men du kan aggregere efter hvad som helst, du kan lide.




  1. Sådan duplikeres tabel i MySQL

  2. Afkrydsningsfelter tjekker ud tilfældigt

  3. ukorrekt aflivning af mysqld - starter nu ikke

  4. Nogen gode PHP MySQL-kompatible rapporteringsrammer derude?