Ich habe zwei Tabellen, "news" und "comments". nun möchte ich eine Übersicht wo ich nach der neusten News bzw neusten kommentierten News sortiere. Das funktioniert mit der Abfragelösung unten ganz prima.
Nun möchte ich aber noch "user_name" auslesen, was aber nicht passt. Mir wird dabei entweder der Name von "news", wenn noch kein Kommentar vorhanden ist ausgeben (soll ja so sein) und wenn Kommentare (also mehrere) vorhanden sind dann wird immer der Name des ersten Kommentars ausgegeben, wobei es in diesem fall der Letzte sein muss.
Jemand einen Tip wie ich das clever löse, ich bin mit meinem Latain am Ende.
Tabelle news:
id | text | datetime | user_name
Tabelle comments:
id | text | datetime | news_id | user_name
Nun möchte ich aber noch "user_name" auslesen, was aber nicht passt. Mir wird dabei entweder der Name von "news", wenn noch kein Kommentar vorhanden ist ausgeben (soll ja so sein) und wenn Kommentare (also mehrere) vorhanden sind dann wird immer der Name des ersten Kommentars ausgegeben, wobei es in diesem fall der Letzte sein muss.
Jemand einen Tip wie ich das clever löse, ich bin mit meinem Latain am Ende.
Tabelle news:
id | text | datetime | user_name
Tabelle comments:
id | text | datetime | news_id | user_name
PHP-Code:
SELECT
news.content,
IF(comment.id IS NULL, news.datetime, max(comment.datetime)) AS Datum,
IF(comment.id IS NULL, news.user_name, comment.user_name) as displayname,
comment.content,
FROM news
LEFT JOIN comment ON news.id = comment.news_id
GROUP BY news.id
ORDER BY Datum DESC
Kommentar