JOIN-Anweisung macht mir zu schaffen

erik s.

Erfahrenes Mitglied
aaaaaalso ..

folgendes alltagsproblem :
2 tabellen(in der selben db) namens news und kommentare (aahha, kommt uns schon sehr bekannt vor) ..
nun folgende aufgabe : ich will mit einem einzigen query folgendes auslesen :
-alle daten aus news
-anzahl der zeilen in kommentare, wo kommentare.newsid und news.id gleich sind
-order by news.id desc
-limit 0,3

ich hab das mal versucht, aber bekomme immer nen fehler
PHP:
select news.*, count(kommentare.newsid) as Anzahl from news, kommentare where kommentare.newsid=news.id order by news.id desc limit 0,3

ach ja :
news enthält die spalten autor,topic,datum,text,id und kommentare die spalten autor,email,datum,text,newsid .

bitte um hilfe ..

danke, mfg
 
Zuletzt bearbeitet:
probier mal das hier:

Code:
SELECT news.id, news.autor, news.topic, news.datum, news.text, Count(kommentare.newsid) AS anzahl 
FROM (news INNER JOIN kommentare ON (news.id = kommentare.newsid))
GROUP BY news.id, news.autor, news.topic, news.datum, news.text, kommentare.newsid 
ORDER BY news.id DESC 
LIMIT 0,3;

müsste klappen. hoff ich mal.
 
kk, danke dir .. werds probieren

mfg

EDIT :
hm, also ich das probiert, es kommt zwar kein fehler mehr, dafür aber auch nix anderes, also er zeigt keine news an . obwohl in der tabelle news eine zeile vorhanden ist .

danke, mfg
 
Zuletzt bearbeitet:
SELECT news.id, news.autor, news.topic, news.datum, news.text, Count(kommentare.newsid) AS anzahl
FROM news INNER JOIN kommentare ON (news.id = kommentare.newsid)
GROUP BY news.id, news.autor, news.topic, news.datum, news.text, kommentare.newsid
ORDER BY news.id DESC
LIMIT 0,3

Da waren doch die Klammern zuviel? Oder nicht?
 
hm, ich werds gleich mal testen ..

mfg

EDIT : ne, so gehts auch net .. zeigt wieder nichts an, wie beim anderen auch .. :(

mfg
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück