Jest zapytanie ktore dziala calkiem ladnie - ma pokazywac ilosc postow uzytkownika z podzialem na typy (zaakceptowane, odrzucone, poprawione, etc) . Zapytanie samo w sobie dziala OK. Jednakze po utworzeniu widoku z tego zapytania zamiast liczby postow dla kazdego uzytkownika pokazuje w rekordzie sumaryczna ilosc postow dla wszystkich uzytkownikow (tak jakby warunek z uzytkownikiem nie byl brany pod uwage..
SELECT `sf_guard_user_id` AS uid, sf_guard_user.username AS username, (SELECT count(id) FROM manual_post WHERE `sf_guard_user_id`=uid ) AS total, (SELECT count(id) FROM manual_post WHERE `sf_guard_user_id`=uid AND STATUS=0 ) AS new, (SELECT count(id) FROM manual_post WHERE `sf_guard_user_id`=uid AND STATUS=1 ) AS accepted, FROM manual_post,sf_guard_user WHERE manual_post.sf_guard_user_id=sf_guard_user.id GROUP BY uid
Zapytanie daje wynik:
Kod
uid, username, total, new, accepted
1, admin, 4, 0, 4
2, admin2, 2, 0, 1
3, writer_test, 5, 4, 0
1, admin, 4, 0, 4
2, admin2, 2, 0, 1
3, writer_test, 5, 4, 0
a w widoku natomiast
Kod
uid, username, total, new, accepted
1, admin, 11, 4, 5
2, admin2, 11, 4, 5
3, writer_test, 11, 4, 5
1, admin, 11, 4, 5
2, admin2, 11, 4, 5
3, writer_test, 11, 4, 5
czyli z jakiegos powodu sumuje posty/rekordy dla wszystkich uzytkownikow
Czy to jakis bug, czy to ja czegos nie rozumiem? Z widokami szczerze mowiac zbyt czesto nie mam do czynienia... a nie moge dopatrzyc sie bledu, no i na 2ch serverach dziala tak samo.