To jest tylko wersja do druku, aby zobaczyć pełną wersję tematu, kliknij TUTAJ
phpBB2 by Przemo
Support forów phpBB2 modified by Przemo

Bazy danych SQL - Wyświetlanie wyników nie mających wartości

Dartam - 29-03-2013, 23:34
Temat postu: Wyświetlanie wyników nie mających wartości
Witam,
mam problem z sporządzeniem zapytania SQL. Obecnie mam takie coś:

Kod:
SELECT YEAR(FROM_UNIXTIME(post_time)) as aar, MONTH(FROM_UNIXTIME(post_time)) as mnd, COUNT(*) AS ant
   FROM phpbb_posts
    WHERE poster_id = '2'
    GROUP BY YEAR(FROM_UNIXTIME(post_time)), MONTH(FROM_UNIXTIME(post_time))
    ORDER BY post_time


Zapytanie to wyświetla ilość postów użytkownika o id=2 napisanych w danym miesiącu i roku. Jednak nie wyświetla wyników, gdy w danym miesiącu użytkownik nie napisał w ogóle żadnych postów. Mógłby mi ktoś pomóc, jak przerobić to zapytanie żeby wyświetlało również właśnie gdy nie ma żadnych wiadomości w miesiącu (ant==0)? :(

Tommekk80 - 30-03-2013, 09:06

Zobacz sobie jak to jest tu - http://przemo.org/phpBB2/...ic.php?t=143340
Dartam - 30-03-2013, 10:22

Tommekk80, identycznie. Kod jest właśnie stąd. :mrgreen:
Tommekk80 - 30-03-2013, 10:44

Na screenie widać, że wyświetla '0'.
Dartam - 30-03-2013, 10:58

Tommekk80, ale to nie jest powodem zapytania. Tylko po prostu generuje cały rok, gdy któryś z miesięcy ma >0 postów. I problemem jest właśnie, że nie wyświetla lat, w których nie ma w ogóle napisanych postów (w żadnym z miesięcy).
MQs - 30-03-2013, 20:30

Próbujesz wyświetlić coś czego nie ma w bazie, bo nie istnieje nie tylko liczba postów z tego okresu, ale także sam okres.

Najprościej dopełniać takie dane przez skrypt, ale jeśli upierasz się przy zapytaniu to musisz chyba kombinować z dodatkową tabelą poszczególnych miesięcy i lat, następnie dołączać do niej ilość postów przez LEFT JOIN, a wyniki NULL zamienić na 0 przez COALESCE(COUNT(p.*), 0).



Powered by phpBB modified by Przemo © 2003 phpBB Group