PHP & MySQL doppelte Eintrage aussortieren

Freddy84

Grünschnabel
Hallo,

ich habe folgendes Problem, ich habe eine Datenbank mit einer Tabelle.
In der Tabelle habe ich teilweise fast identische Datensätze, die sich nur in der categoryid unterscheiden.
Wenn ich nun alle Datensätze anzeigen lassen möchte, zeigt er mir auch die "doppelten" mit an, mit DISTINCT funktioniert das leider nicht, da ja nicht die ganze Zeile identisch ist.
Auslesen tu ich das folgendermaßen:

$abfrage = "SELECT DISTINCT Id, Titel, Link, piclink, shortlink, description, categoryid, klick FROM ab_inhalte WHERE categoryid=3 ORDER BY Titel ASC";

Ausgeben tu ich das dann über eine while schleife und echo!

Ich hoffe mir kann jemand helfen, bin in dem Gebiet jetzt auch erst seit ca. einer Woche aktiv, daher hoffe ich auf eine etwas ausführlichere Antwort.

Gruß
Freddy
 
Hi

beim Distinct musst Du das Feld weglassen, was sich von den gleichen Datensätzen unterscheidet. Ansonsten kannst Du über min() oder max() den Wert aussuchen, der von den gleichen Datensätzen dargestellt werden soll und ein group by drauflegen.

SELECT feld, max( id ) AS maxid
FROM tabelle
GROUP BY feld
 
Also das mit dieser Group check ich nich, ich will eigentlich nur das der das die mehrfach in der Liste existierenten Einträge lediglich nur einmal ausgibt.

Mit distinct geht es nicht, hab die categoryid einfach weg gelassen und trotzdem zeigt der noch die doppelten Einträge an.

Das mit der Group da bräucht ich bitte ein Beispiel.

Danke

Gruß
Freddy
 
Hi

wenn Du das ungleiche Feld weggelassen hast und die Einträge zeigen sich immer noch doppelt an, dann ist noch ein Feld ungleich.

Group by macht eigentlich das, was der Distinct auch macht, er grouppert gleiche Datensätze. Ein Beispiel findest Du in meinem Vorposting.
 
Zurück