Mam mały problem ze sformułowaniem zapytania.
Mam dwie tabele:
TUTORIALS
| tutorials_id | tutorials_reszta |
gdzie |tutorials_reszta| wprowadzone dla uproszczenia (normalnie jest tam więcej kolumn, ale po co utrudniać - do zapytania się nie przydadzą)
COMMENTS
| comments_id | comments_user | comments_comment | comments_date|commenst_tutorial |
gdzie |commenst_tutorial| = |tutorials_id|
Teraz na czym mają polegać zapytania:
1) Pobrać z bazy wszystkie komentarze z tabeli COMMENST dla danego |commenst_tutorial | jednocześnie licząc ile jest tych komentarzy ...
2) Pobrać z bazy wszystkie tutoriale z tabeli TUTORIALS jednocześnie licząc ile komentarzy w tabeli COMMENST jest dla danego |tutorials_id|
Oczywiście można iść na łatwiznę i mieć w tabeli TUTORIALS kolumnę, w której przy każdym komentarzu dodawane jest +1, a przy każdym usunięciu jest -1, ale w takim wypadku trzeba zawsze o tym pamiętać. Dodatkowo gdy kiedyś pójdzie jakiś SPAM, to wygodniej mi usunąc komentarze bezpośrednio w bazie - niestety wtedy także muszę lecieć do tabeli TUTORIALS i zmieniać stan licznika.
Stąd też mój pomysł, że pewnie jest jakieś ładne zapytanie MySQL.
Niestety w MySQL aż tak "wywijać" JESZCZE nie potrafię, więc pytam lepszych (muszę kiedyś znaleźć czas i się przekopać przez dokumentację MySQL bo coraz częściej odczuwam swoje ograniczenie w tym zakresie:) )
Dla (1) próbowałem coś w rodzaju:
SELECT a.*, COUNT(b.comments_id) AS FROM comments a, comments b WHERE a.`commenst_tutorial` = b.`commenst_tutorial` AND a.`commenst_tutorial` = 'clean_vertical_menu'
Ale zwraca tylko jeden wiersz i to dodatkowo ze złą ilością ...
Ktoś ma jakiś pomysł?
Jeśli to pomoże - MySQL 5.1.30