Mailinglisten-Archive |
>SELECT DISTINCT spalte, spalte, spalte ... undsoweiter, funktioniert aber >nur wenn die angezeigten Spalten alle identisch sind, wenn du die ID mit >anzeigst, gehts schon nicht mehr, und verlangsamt zusaetzlich. Dein Group by taugt >hier aber auch nichts, der ist nur gut, wenn du Funktionen wie MAX oder SUM >oder COUNT nutzen willst. Am besten definierst du einmal im klarstem >hochdeutsch, was du sehen moechtest. Ok, also ich habe eine tabelle mit dem namen "game". der aufbau sieht folgendermassen aus: Field Type Null Default Extra id bigint(10) No auto_increment answer varchar(250) No name varchar(250) No email varchar(250) No dat datetime No 0000-00-00 00:00:00 ip varchar(250) No 0 host varchar(250) No 0 number bigint(10) No 0 strasse varchar(100) No plz varchar(30) No 0 stadt varchar(100) No 0 In dieser Tabelle sind 495 000 Eintrage enthalten. Wir veranstalten diverse gewinnspiele, an jedem dieser gewinnspiele kann ein und die selbe person teilnehmen. diese wird dann in die tabelle "game" jedesmal auf's neu aufgenommen (ich wei? dies ist nicht gerade die feine englische art,habe ich allerdings nicht verbrochen). daraus resultierend kann man festhalten, dass ein und die selbe person mehrmals in dieser tabelle enthalten sein kann, der einzige unterschied liegt in einem solchen falle in dem schlusselfeld "id". mit einer ausnahme, es kann auch sein, dass eine person seinen namen in solchen fallen jeweils unterschiedlich geschrieben hat, doch der rest der angaben identisch ist. folglich fallt hier die klausel "DISTINCT" ja wohl leider flach. meine aufgabe liegt nun darin herauszufinden wieviele menschen in der tabelle game angelegt sind. hierbei soll ich die doppelten eintrage herausfiltern. Konkret soll ich alle menschen(eintrage) erfassen, die eine komplette emailadresse und eine komplette postanschrift hinterlegt haben => alle doppelten antrage sollen nicht angezeigt werden. erlaubt ist jedoch,dass ein und die selbe person in diesem zusammenhang mehrere emailadressen hinterlegt hat. aus diesem grunde habe ich auch ein "Group By" auf die email adresse versucht. ich hoffe nun ist meine aufgabenstellung klar geworden. zur erinnerung habe ich nochmal meine beiden query-versuche beigefugt.: 1) Select count(*), `name`, `email`, `strasse`, `plz`, `stadt` FROM `game` WHERE Trim(`name`) <> '' AND Trim(`email`) <> '' AND Trim(`strasse`) <> '' AND Trim(`plz`) <> '' AND Trim(`stadt`) <> '' GROUP BY `email` 2) Select `id`, `name`, `email`, `strasse`, `plz`, `stadt` FROM `game` WHERE Trim(`name`) <> '' AND Trim(`email`) <> '' AND Trim(`strasse`) <> '' AND Trim(`plz`) <> '' AND Trim(`stadt`) <> '' GROUP BY `email` ich hoffe ihr konnt mir helfen,ich komme einfach nicht weiter. mfg. jerome -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive