[MySql] komplizierte Abfrage einiger Einträge

CrazySash

Well-known member
ID: 93631
L
20 April 2006
2.273
103
Hallo

ich hab eine Tabelle die wie folgt aufgebaut ist

id|pid|text|datum

Zur Erklärung: id ist eindeutig!. die gleiche pid kommt mehrmals in der tabelle vor!

nun möchte ich die letzen 20 Einträge aus dieser Tabelle haben. Das habe ich schon soweit hinbekommen.

Das Problem ist nun, dass unter diesen 20 Einträgen keine pid doppelt vorkommen soll.

Wer kann mir helfen?
 
schonmal danke, aber will net so ganz...

Code:
SELECT DISTINCT i.pid, i.id, i.text, c.name
        FROM ".A_TABLE." i, ".B_TABLE." c
        WHERE c.id = i.pid
        ORDER BY i.datum DESC
        LIMIT 20;
 
DISTINCT greift nur, wenn die ganze Zeile gleich ist.

Code:
SELECT i.pid, i.id, i.text, c.name
        FROM ".A_TABLE." i, ".B_TABLE." c
        WHERE c.id = i.pid
        GROUP BY i.pid
        ORDER BY i.datum DESC
        LIMIT 20;

Damit kriegst du jeweils den ersten Eintrag einer pid, alle weiteren die danach kommen und die selbe pid haben, werden weggeworfen.

(edit: ORDER BY hinters GROUP BY ;))
 
Zuletzt bearbeitet: