Ich habe diese DB: (Note id
ist einzigartig)MySQL, wie in Untergruppen von Zeilen Gruppe
Ich versuche, diese zu bekommen:
Was wäre eine effiziente SQL-Abfrage, um dies zu erreichen?
Ich habe diese DB: (Note id
ist einzigartig)MySQL, wie in Untergruppen von Zeilen Gruppe
Ich versuche, diese zu bekommen:
Was wäre eine effiziente SQL-Abfrage, um dies zu erreichen?
SELECT
DISTINCT
foo2.group_id AS group_id,
if(foo1.group_id = foo2.group_id, foo1.id, NULL) AS id,
if(foo1.group_id = foo2.group_id, foo1.some_attr, NULL) AS some_attr
FROM mytable AS foo1
JOIN
(SELECT DISTINCT group_id FROM mytable) as foo2
ORDER BY group_id, id
Sie scheinen eine Ergebnismenge mit der Formatierung der Ergebnismenge zu mischen. SQL-Ergebnismengen sind Tabellen konsistenter Zeilen. Der nächste, den Sie kommen können, ist, die Reihenfolge Ihrer Spaltennamen in der SELECT-Anweisung zu ändern. Sie müssen Ihre eigenen Zeilenumbrüche zum Zeitpunkt der Präsentation hinzufügen.
Sie möchten diese Art von Operation nicht wirklich in SQL durchführen. Es ist viel besser auf der Anwendungsebene zu tun. Möglich, aber wirklich nicht wert. –
Es ist besser, dies auf App-Seite zu tun (Java/php/...) Verwenden Sie eine einfache Reihenfolge von für 'group_id', dann durchlaufen Sie die Ergebnismenge. Wenn sich die 'group_id' ändert, wenden Sie die Header an. – gaborsch