MySQL Abfrage will nicht so recht...

Hallöchen,

ich bräuchte Eure Hilfe mit einer MySQL Abfrage.

Habe hier eine Datenbank mit Nachrichtungen/Pressemeldungen.
Die Tabelle hat folgende Spalten:

Titel (die "Schlagzeile" :°)
Link (die URL des Artikels)
PubDat (Datum der Veröffentlichung)
Content (der Artikel)
Anhang (wenn z.B. ein Presse-Foto dabei ist)
QuellID (die Quelle des Artikels)

Ich muss nun einen query bauen, der die ersten 50 Schlagzeilen ausgibt, wobei Titel und Quelle unique sein sollen, neueste zuerst.

Folgende Abfrage bringt "fast" das gewünschte Ergebnis:

Code:
(SELECT DISTINCT Titel, Link, PubDat, Content, Anhang, QuellID
		FROM 	items 
		GROUP 	BY QuellID, Titel) 		  
		ORDER 	BY PubDat DESC LIMIT 50');

...allerdings werden damit immer mehrere Schlagzeilen der gleichen Quelle ausgegeben.

Frage: WIE muss die Abfrage umgestellt werden bzw. mit welche Abfrage bekomme ich das gewünscht Ergebnis, also Titel UND Quelle unique?

Danke für Euer Feedback,

Mr. Mac :)
 
Danke Dir, macre.

GROUP_CONCAT ist mir neu und klingt interessant, habe folgendes versucht, aber da die Seite nach der Mittagspause immernoch nicht aufgebaut ist, habe ich wohl mit folgendem query was falsch gemacht:

Code:
(SELECT DISTINCT Titel, Link, PubDat, Content, Anhang, GROUP_CONCAT(QuellID)
		FROM 	items 
		GROUP 	BY QuellID, Titel) 		  
		ORDER 	BY PubDat DESC LIMIT 50');

Wie müsste das lauten?

Danke! :)
 
Ich war noch nie ein großer Freund von MySQL, aber es muss ja gemacht werden...

Code:
SELECT DISTINCT Titel, Link, PubDat, Content, Anhang, QuellD
		FROM 	items 
		GROUP 	BY QuellID) 		  
		ORDER 	BY PubDat DESC LIMIT 50');
...zeigt mir nun keine Doubletten mehr, aber dass nur, weil pro Quelle (theoretisch) keine doppelten Schlagzeilen vorhanden sind.
Allerdings zeigt diese Anfrage nun nur alte Nachrichten, obwohl nach wie vor absteigend nach PubDat sortiert wird...
 
Hallo Joe,
In welcher Form liegt PubDate denn vor?
unix time stamp

Warum nicht nach "autoindex" sortieren?
Für jede Meldung wird beim Eintrag in die DB eine ID generiert. Habe versucht nach dieser zu sortieren, aber das ist auch nicht "astrein", da die Reihenfolge der ID (=generiert beim Eintrag in die DB) zeitlich nicht mit "PubDate" übereinstimmt - Beispiel: eine vor 5 Std. erschienene News wird vor 2 Min. eingetragen, sollte aber nach der erscheinen, die vor 2Std. erschein und vor 30min. eingetragen wurde, damit immer die "neuesten" News zuerst angezeigt werden.
 
Back
Top