Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Problem beim Verketten von Zeilen mit Duplikaten

Sie können * nicht verwenden, da dies zu einer falschen Aggregation in mysql für Version <5.7

führt

Versuchen Sie, den Namen der expliziten Spalte in select

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

Wenn Sie mehr Spalten benötigen, die sich nicht auf dieselbe Aggregationsebene beziehen, benötigen Sie einen Join

In MySQL-Version <5.7, wenn einige Spalten, die in der Select-Klausel erwähnt werden, von der Aggregationsfunktion nicht richtig in der Gruppe erwähnt werden, geben Sie das erste Vorkommen der Auswahl und nicht das korrekte aggregierte Ergebnis zurück

versuchen Sie hinzufügen

 echo  $row['my_disk];