|
|
#1 (permalink) |
|
ex Smartfahrer
|
Hallo zusammen,
vielleicht hat jemand eine Idee wie ich das gelöst bekommen könnte: Habe ein Tabelle aus der ich doppelte einträge bis auf den neuesten löschen möchte. id - serial - datum - text 1 – 2323 - datetime1 - asdasdasd 2 - 2323 - datetime4 - sgfvdbref 3 - 4444 - datetime3 - fjdnhrjnor 4 - 2323 - datetime2 - dfgghzjer 5 - 1234 - datetime5 -iorpiet095k 6 - 4444 - datetime6 - sefdthdg45 Die Tabelle ist nicht immer nach IDs sortiert. Ergebnis wären IDs: 1,3,4 Ich suche jetzt alle Einträge von Serial (Geräte S/N) die doppelt vorkommen, jedoch nicht den mit dem aktuellsten Datum. Ziel ist nachher dass ich die Einträge aus der DB löschen möchte, bis auf den schon erwähnten neuenesten Eintrag. Jedoch wäre zum "schrauben" eine Ausgabe ausreichend. Hat jemand von euch eine Idee oder einen Ansatz, ob das in einer Abfrage zu lösen ist? Evtl. mit Subquerys (die ich irgendwie nicht so recht in den Kopf bekomme). Die DB kann ich nicht Uniqe auf serial machen, da ich die doppelten Einträge erstellen und weiterverarbeiten muss, bis ich sie löschen kann. Die Einträge werden durch eine .EXE erzeugt auf die ich keinen Einfluss nehmen kann. ...Mark
Lose selbst generieren - 10% Refback!
Folgende Domains stehen zum Verkauf: expresslose.de ••• klammtreff.de ••• klamm-treff.de ••• klammtreffen.de |
|
|
|
| Gesponsorte Links |
|
|
#2 (permalink) | |||
|
Blubb!
|
Interessante Aufgabe, garnet mal so einfach
Bin aber nach vielen Seiten Manual und einigen Tests zu folgendem Ergebnis gekommen: Code:
Das Subquery sucht das Maximum in der Datumsspalte für jeden vorhandenen Serial. Sprich es listet die Reihen auf, die du behalten möchtest. Danach zeigt das äußere Query nur noch die Datensätze an, die nicht in der Liste enthalten sind (bzw. löscht sie). Ich muss zugeben, dass ich das Ganze selbst noch nicht komplett durchschaut habe, aber mit meinen Testdaten hats funktioniert (Die Where-Klausel im Subquery verbindet die beiden Querys wohl irgendwie, so dass nicht auch andere Einträge mit gleichem Datumswert selektiert werden...) Kannst es ja mal auf deine Daten anwenden (die wohl umfangreicher als meine 7 Testsätze sind) und schauen, obs da auch klappt. Falls nicht... muss ich mir was andres überlegen Gruß |
|||
|
|
|
|
|
#3 (permalink) | ||||
|
ex Smartfahrer
|
Zitat:
So einfach und ich komm net drauf! Deine Abfrage ist einfach nur genial!!! Leider klappt das mit dem DELETE nicht, da man bei Subquerys net löschen kann. Ich habs mit Hilfde eines Temporary-Table gemacht: Code:
Freu mich echt dass dass du mich darauf gestossen hast. *blindbin* ...Mark
Lose selbst generieren - 10% Refback!
Folgende Domains stehen zum Verkauf: expresslose.de ••• klammtreff.de ••• klamm-treff.de ••• klammtreffen.de |
||||
|
|
![]() |
| Gesponsorte Links |
| Anzeige |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Doppelte Einträge in den RSS-Feeds | No5251 | Bug-Report | 5 | 23.11.2009 09:08:35 |
| Doppelte Einträge in Forenbox | TerraTux | Bug-Report | 15 | 17.11.2009 14:55:17 |
| [php/mysql] Doppelte Buchungen verhindern... | Gremlin | Programmierung | 4 | 06.08.2009 17:54:39 |
| Mysql: Einträge zählen | Bercki | Scripts & Software | 2 | 15.11.2008 18:19:33 |
| [PHP] Doppelt einträge in der Datenbank nicht Anzeigen... | mydoys.de | Programmierung | 4 | 04.11.2006 13:49:01 |