sql >> Databáze >  >> RDS >> Mysql

Dva stoly, drobet jeden k mnoha vztah. Jak spojit hodnoty bez duplicitních řádků?

Bohužel to nemůžete udělat čistě v MySQL. V sadě výsledků nemůžete mít řádky s různými (počet) sloupců. Potřebujete implementovat nějakou aplikační logiku. Nejblíže se k tomu můžete dostat:

select m.id, GROUP_CONCAT(voto SEPARATOR ',') 
from messages m 
left join votations v on v.messageID = m.id
group by m.id;

Tím se vrátí tento formát:

ID  GROUP_CONCAT(VOTO SEPARATOR ',')
1   2,5,6
2   2,12,3

Jak to funguje, můžete vidět zde:http://sqlfiddle.com/#!2/241a8/ 3




  1. Jak se ujistit, že v databázi MySQL není při inkrementaci pole žádný spor?

  2. Jak používat Návrhář dotazů v SQL Server

  3. Příklady CURRENT_TIMESTAMP – MySQL

  4. Jak získat číselné typy z MySQL pomocí PDO?