MYSQL-Abfrage-PROBLEM

Soapp

Erfahrenes Mitglied
MYSQL-Abfrage-PROBLEM - GROUP BY

Bitte euch Profis um Hilfe ....

Aus der Tabelle GUESTS sollen alle Zeilen in denen GASTVORNAME + GASTNACHNAME doppelt sind entfernt werden

Aus der Tabelle INVITER sollen alle Zeilen in denen GASTVORNAME + GASTNACHNAME doppelt sind entfernt werden

Das ganze soll dann nach GASTNACHNAME sortiert werden ...


Danke, danke, danke, danke !


Fehlermeldung:

#1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'HERE VERANSTALTUNG = 7 GROUP BY GASTNACHNAME, GASTVORNAME ORDER

Abfrage:


SELECT HURZ, GASTVORNAME, GASTNACHNAME, VORNAME, NACHNAME FROM GUESTS
WHERE VERANSTALTUNG = $zahl AND GASTNACHNAME LIKE '$value%' GROUP BY GASTNACHNAME, GASTVORNAME
UNION
SELECT HURZ, GASTVORNAME, GASTNACHNAME, VORNAME, NACHNAME FROM INVITER
WHERE VERANSTALTUNG = $zahl AND GASTNACHNAME LIKE '$value%' GROUP BY GASTNACHNAME, GASTVORNAME
ORDER BY GASTNACHNAME
 
Zuletzt bearbeitet:
Meinst du mit "entfernen" gelöscht aus der Tabelle oder nicht in der Abfrage vorkommen? Mit dem GROUP BY kommst du glaube ich nicht weiter, weil dann werden die Einträge nur nachdem GROUP BY zusammengefasst.

Noch einmal zum Vertständnis:
Du möchtest die Einträge nicht mit auslesen, wo die Kombination GASTVORNAME + GASTNACHNAME bezüglich deren Inhalt mehr als einmal pro Tabelle vorkommt?

Hast du eine MySQL 4.1 oder höher? Dann kann man was mit einem SUBSELECT in beiden WHERE Klausen werden, allerdings wird das stmt dann sehr langsam werden denke ich.
 
die Tabellen sollen nur ausgelesen werden und doppelte EInträge vor der Ausgabe ENTFERNT werden :)

Momentan hab ich eine Query, die keinen Fehler mehr erzeugt ...
aber ist sie auch richtig ?

SELECT HURZ, GASTVORNAME, GASTNACHNAME, VORNAME, NACHNAME FROM GUESTS
WHERE VERANSTALTUNG = $zahl AND GASTNACHNAME LIKE '$value%'
UNION
SELECT HURZ, GASTVORNAME, GASTNACHNAME, VORNAME, NACHNAME FROM INVITER
WHERE VERANSTALTUNG = $zahl AND GASTNACHNAME LIKE '$value%'
GROUP BY GASTNACHNAME, GASTVORNAME
ORDER BY GASTNACHNAME



Im Prinzip reicht es mir schon wenn mir jemand der sich auskennt mir sagt, dass man diese GROUP BY auch auf namen anwenden kann..
Meistens benutzt man die ja bei Aggregatfunktionien (SUM) oder so, wie ich gelesen habe.


DANKE


Soapp
 
Zuletzt bearbeitet:
Hey,

also ich würde sagen, du bekommst bei dem Statement nicht raus was du haben willst! Such dir mal einen Eintrag raus wo dieser Vor- und Nachname doppelt vorkommt. Du wirst sehen, dass entsprechender Name dann auch bei deinem result genau einmal auftaucht.

Das GROUP BY macht ja nix anderes, als alle Einträge mit gleichen Wert nach dem gruppiert wird auf einen Wert in der Auslese zu minimieren.

Beispiel wäre:

GASTNACHNAME | GASTVORNAME |
---------------------------------------------------------
Müller | Jan |
---------------------------------------------------------
Meier | Bernd |
---------------------------------------------------------
Müller | Jan |
---------------------------------------------------------

Dann wird mit allem drum und dran bei deinem Statement die Kombo Müller Jan trotzdem einmal im result auftauchen, du willst den Namen aber ja gar nicht haben so wie ich dich verstehe oder?
 
Jeder Gastgeber kann mehrmals mehrere Gäste eintragen ..

Damit er aber in der Gästeliste nur einmal auftaucht das GROUP BY ...

Das funktioniert auch ..

Will nur wissen, ob das so ok ist, oder ob ich mit Überraschungen zu rechnen habe ;-)

Danke für deine Zeit !
 
Ah ha, dann haben wir es ja nun :-) einmal auftauchen ist ja einmal mehr als keinmal! Dann habe ich deine Frage am Anfang einfach anders verstanden.

Dann passt es, da hast du auch keine böse Sachen zu erwarten, nene.
 
Zurück