Kwerenda w MySQL

0

Mam takie pytanko. Męczę się z tym od wczoraj i nie mogę dojść. Mam dwie tabelki, jedną z notkami, drugą z komentarzami. I chcę za pomocą jednego zapytania uzyskać pełne info o notce i ilości komentarzy, które mają ten sam ID_Notki, co w dana notka. Mam nadzieję, że da się to zrozumieć, o co mi chodzi :). Coś naskrobałem, ale jak już nie zgłaszał błędów, to do każdej notki podawał, że jest tyle komentarzy, ile jest w sumie...

0

select note_subject, count(*) as ilosc
from notes
left join comments on note_id=comment_note
where note_id = 5
group by comment_note

5 to oczywiście parametr - numer notatki
nie podałeś budowy tabel, więc przyjąłem, że masz w tabeli 'comments' pole 'comment_note', w którym jest id notatki

0

Hmm... Nie do końca o to mi chodziło... Bo to zapytanie zwraca jedną notkę i liczbę komentarzy do niej (tak przynajmniej to zrozumiałem). A mi chodzi o coś, co zwróciłoby coś w stylu SELECT * FROM notki, tylko że jeszcze w dodatkowym polu w każdym rekordzie podawałoby ilość komentarzy do tej notki. Czyli żebym potem mógł po prostu za pomocą mysql_fetch_array uzyskać kolejne notki z liczbą komentarzy do nich.
Moje tabelki wyglądają następująco:
notki: #ID_Notki, Data, Tytul, Tresc
komentarze: #ID_Komentarza, ID_Notki, Data, Nick, E-mail, WWW, Tresc, IP
gdzie oczywiście # to klucz podstawowy.
Da się coś takiego zrobić??

0

No to wystarczyło wywalić klauzulę 'where' i zmienić * na odpowiednie pole w 'count' - dodatkowo przerobiłem nazwy pół na Twoje:

select n.ID_Notki, Tytul, count(ID_Komentarza) as ilosc
from notki n
left join komentarze using(ID_Notki)
group by ID_Notki

1 użytkowników online, w tym zalogowanych: 0, gości: 1