![]() |
mysql: wie nicht in ergebnis enthaltene id´s ermitteln?
hallo!
ich steh grad auf dem schlauch...vielleicht könnt ihr mir helfen ich hab eine liste in der datensätze mehrfach vorkommen, meist gleich, aber auch mit einem einzigen datum verschieden. jetzt brauch ich einerseits eine liste aller doppelten, die sich nur in dem einen datum unterscheiden und andererseits eine liste derer, die eben nicht doppelt vorkommen oder völlig doppelt oder vielfach (wobei ganz allgemein doppelt oder dreifach oder vierfach egal is, ich brauch sie nur einmal genau doppelt mit dem einen unterschied, alles andere in die 2te liste) die erste liste hab ich, ich komm nur nicht dahinter, wie ich die zweite erzeugen soll: SELECT A.datum1,A.datum2,A.datum3, B.datum1,B.datum2,B.datum3 WHERE A.datum1=B.datum1 AND B.datum2<> B.datum2 AND A.datum3= B.datum3 GROUP BY A.datum1 einfach die gegenteilige abfrage ergibt nur müll, da in der liste wirklich viele dupes mit allen möglichen kombinationen drin sind ich hab mir gedacht ich exportier die zwei ausgabespalten und reimportier sie in eine eigene tablle mit nur einer spalte und joine das gegen die ori-tabelle, oder gehts einfacher? thx! |
ehrlich gesagt, hab ich nicht ganz verstanden was du erreichen willst...
vielleicht hilft dir eine gruppierung nach datum weiter. alle gruppen die einen count>1 haben, sind dann doppelt vorhanden. LG |
Ich glaube er braucht zwei Ergebnise, die Datensätze mit einem Datum die doppelt vorkommen, und jene die nur einmal vorhanden sind. Ist aber nur geraten ;)
Vielleicht hilft das hier: http://dev.mysql.com/doc/refman/5.1/...functions.html |
vielleicht krieg ichs jetzt deutlicher hin ;);
es sind 4000 datensätze, davon 1500 mit datum1 (group by datum1). mit obiger abfrage hab ich 3000 datensätze ermittelt, nämlich alle 1500 grupierte und daneben 1500 die bis auf datum2 ident mit denen sind. datum2 hat immer nur 2 mögliche werte. das ist erledigt. die liste ist datum1.datum2.datum3.datum1.datum2anders.datum3 dann brauch ich alle datensätze aus der liste die nun übrig sind. das sind datensätze die sind völlig ident mit den obigen (wenige), aber wegen gruppierung rausgefallen (beabsichtigt). dann gibt es welche bei denen nur datum1 gleich is, der rest aber nicht, also quasi singles (viele). usw.. der einfachste weg wär also einfach die restmenge von obiger abfrage in eine eigene liste abzubilden, denk ich.. ideal wär also gewesen select * from tabelle where id <> (<obige abfrage>) was aber netz funzt, da die unterabfrage ja mehr als 1 ergebnis hat..oder ich schreib ergebnis 1 in einen php-array und frag einzeln die übrigen ab..oder das geht mit einer mysql abfrage? |
Schau dir einfach mal den Link an, den ich gepostet hatte. Es gibt ja nicht nur "where" sondern noch when, then else, if, ... Da kann man sich schon was bauen ;)
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 12:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag