Antworten auf deine Fragen:
Neues Thema erstellen

Doppelte Datensätze filtern

Isometric

Powerproster

Ich habe zwei über eine ID verknüpfte Tabellen (Haupttabelle und Grupenzugehörigkeit).

Jetzt versuche ich eine Abfrage zu erstellen, die mir alle Datensätze anzeigt, die NICHT in einer bestimmten Gruppe sind und gleichzeitig die doppelten Datensätze zu filtern.

Der erste Teil der Abfrage klappt und beim zweiten Teil hatte ich gedacht, dass ich das mit DISTINCT gelöst bekomme. :p

Funktioniert aber nicht :mad:
PHP:
$sql = "SELECT DISTINCT t.name, t.id,  g.group_id
        FROM  teams t
        INNER JOIN
            teams_in_groups g ON g.id = t.id
        WHERE t.name != '' AND g.group_id != '7'
        ORDER BY name";
Es werden alle Namen doppelt, oder auch mehrfach angezeigt, je nachdem wie oft ein Name einer bestimmten Gruppe zugeordnet ist.
 

Isometric

Powerproster

AW: Doppelte Datensätze filtern

Vielen Dank, das hat geklappt. :D

Ist bei dem GROUP BY nicht eigentlich eine Rechenfunktion erforderlich?
[FONT=Verdana, Arial, Helvetica, sans-serif]Das Schlüsselwort GROUP BY wird verwendet, wenn mehrere Spalten aus einer Tabelle (oder mehreren Tabellen) ausgewählt werden und mindestens ein arithmetischer Operator in der SELECT-Anweisung enthalten ist.[/FONT]

Und warum funktioniert das DISTINCT nicht?
 
Zuletzt bearbeitet:

pecado78

Noch nicht viel geschrieben

AW: Doppelte Datensätze filtern

INNER JOIN ist auch ein Operator, wenn auch eher ein logischer als ein arithmetischer Operator.
 

Duddle

Posting-Frequenz: 14µHz

AW: Doppelte Datensätze filtern

Ist bei dem GROUP BY nicht eigentlich eine Rechenfunktion erforderlich?
Du liest das falsch. GROUP BY wird benötigt, falls eine Aggregatsfunktion benutzt wird, nicht andersrum.

DISTINCT vergleicht alle Spalten. Ich weiß nicht wie deine Ausgabe derzeit ist, aber wahrscheinlich gibt es Unterschiede in den erzeugten Zeilen.


Duddle
 

rafoldi

Aktives Mitglied

AW: Doppelte Datensätze filtern

Vielen Dank, das hat geklappt. :D

Ist bei dem GROUP BY nicht eigentlich eine Rechenfunktion erforderlich?


Und warum funktioniert das DISTINCT nicht?

Also group by ist nicht ok, zu mindest nicht mit den infos. Ein group by belastet die DB unnötig.

Und Nein ein group by muss mit bei Rechenopperationen genutzt werden,ein min, max, count und avg setzen auch einen group by vorraus. Ebenso ein having.

Der distinct ist schon richtig, es wird das Ergebnis aller Felder sein. Da wird es einen Unterschied geben.

Sicher das die Tabellen richtig also eindeutig mit einander verbunden sind?
 

Isometric

Powerproster

AW: Doppelte Datensätze filtern

Das mit der Belastung der Datenbank wäre in diesem Fall nicht so dramatisch, da es sich nur um wenige Datensätze handelt (ca. 150), die durchlaufen werden müssen.

Wenn DISTINCT alle Spalten vergleicht, dann kann das nicht klappen, da ja nur der Name gleich ist, aber andere Werte in den Zeilen unterschiedlich sind.

Gibt es denn eine andere Möglichkeit, außer GROUP BY die Datensätze entsprechend zu reduzieren?
 
Zuletzt bearbeitet:
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.635
Beiträge
1.538.449
Mitglieder
67.556
Neuestes Mitglied
Ggirl
Oben