Immer neuesten Datensatz anzeigen
Andy
- datenbank
Hi,
ich habe folgende Tabelle für eine Homepage, in der die einzelnen Seiten abgespeichert werden.
S_id für eindeutige Seitenerkennung (Primärschlüssel, auto_increment)
einige felder für Titel, Inhalt, Autor usw. die meistens unterschiedlich sind
S_date für Erstellungsdatum
S_seite für Gruppierung
Es gibt von den Seiten unterschiedliche Versionen, die alle durch einen gleichen Wert S_seite erkennbar sind. Die neuere Seite hat einen höheren Wert in S_date.
Nun würde ich gerne eine Abfrage machen, die mir von jedem Wert in S_seite den neuesten Datensatz anzeigt.
momentan bin ich nur so weit, dass ich zwei abfragen machen muss:
1. SELECT S_seite, max(S_date) as maxdate FROM seiten
GROUP BY S_seite
2. SELECT * FROM seiten WHERE S_seite=$seite and S_date=$maxdate
geht dies in einer Abfrage?
Danke!
Hi,
ORDER BY ASC | DESC LIMIT 0,5
Simone
yo,
momentan bin ich nur so weit, dass ich zwei abfragen machen muss:
- SELECT S_seite, max(S_date) as maxdate FROM
seiten
GROUP BY S_seite- SELECT * FROM seiten WHERE S_seite=$seite and S_date=$maxdate
geht dies in einer Abfrage?
ja, das gibt es und hört auf den den schönen namen korrelierende unterabfrage. nicht jede version des jeweiligen dbms kann aber unterabfragen, zum beispiel mysql erst ab 4.1.
SELECT s1.*
FROM seiten AS s1
WHERE s1.S_date =
(
SELECT max(s2.S_date)
FROM seiten AS s2
WHERE s2.S_seite = s1.S_seite
)
Ilja
Hallo
Es gibt von den Seiten unterschiedliche Versionen, die alle durch einen gleichen Wert S_seite erkennbar sind. Die neuere Seite hat einen höheren Wert in S_date.
Nun würde ich gerne eine Abfrage machen, die mir von jedem Wert in S_seite den neuesten Datensatz anzeigt.
Du selektierst per WHERE S_seite=$seite
zuerst, welche Seite gemeint ist. Danach ordnest du die gefundenen Zeilen (Datensätze) nach $_date (mittels ORDER BY
und ASC
/DESC
für auf- und absteigend) und begrenzt die Menge der Zeilen per LIMIT
auf den gewünschten Wert.
Tschö, Auge
yo,
Du selektierst per
WHERE S_seite=$seite
zuerst, welche Seite gemeint ist. Danach ordnest du die gefundenen Zeilen (Datensätze) nach $_date (mittelsORDER BY
undASC
/DESC
für auf- und absteigend) und begrenzt die Menge der Zeilen perLIMIT
auf den gewünschten Wert.
er will nicht für eine bestimmte seite den neuesten datensatz, sondern für alle seiten den jeweiligen neusten und das mit einer abfrage.
Ilja