Mysql
 sql >> Database >  >> RDS >> Mysql

Problema di concatenazione di righe con duplicati

Non puoi usare * perché questo produce un'aggregazione errata in mysql per la versione <5.7

prova a utilizzare il nome esplicito della colonna in select

SELECT computer.ID, group_concat(HardDisk.Id) my_disk
from Computer
inner join HardDisk on Computer.Id = HardDisk.ComputerId
group by Computer.Id 

se hai bisogno di più colonne non correlate allo stesso livello di aggregazione hai bisogno di un join

In mysql versione <5.7 se alcune colonne menzionate nella clausola select non sono menzionate correttamente in group dalla funzione di aggregazione restituiscono la prima occorrenza di select e non il risultato aggregato corretto

prova ad aggiungere

 echo  $row['my_disk];