Hallo,
meine DB sieht ungefähr so aus:
ID | name | f1 | f2 | f3 | datum
---|------|----|----|----|-------
1 | hans | 1 | | 3 | 2007
2 | hans | 2 | 14 | | 2008
Ich möchte jetzt das Datensätze mit gleichem "name" zusammengefügt werden.
Also auf obiges Beispiel bezogen sollte das Ergebnis so aussehen.
ID | name | f1 | f2 | f3 | datum
---|------|----|----|----|-------
x | hans | 2 | 14 | 3 | 2008
Die ID (hier "x") ist vollkommen egal, meinetwegen kann auch ein neuer Datensatz angelegt werden.
Die "2" in "f1" soll die 1 überschreiben, da Datensatz 2 aktueller ist(siehe PseudoDatum).
Mein Problem dabei ist, das meine Tabelle nicht wirklich so einfach aussieht, sondern ca. 1500 Spalten hat.
Im Augenblick versuche ich das über 3 Anfragen zu regeln. Zuerst lese ich alle Spaltenköpfe (s1) aus, danach suche ich doppelte Daten und lass mir den aktuelleren Ausgeben (d1). Dann bastele ich in PHP einen MySQL-Update-Query aus s1 und d1, in dem nur die in d1 gefüllten Felder übertragen werden.
Geht das eventuell etwas kürzer bzw. performanter?