![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 63 Pomógł: 0 Dołączył: 20.08.2008 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Mam problem z jednym zapytaniem. Chcę pobierać z bazy informacje o artykułach i przy tym o ilości komentarzy i ocenie. Gdy wyciągam tylko ilość komentarzy jest ok: SELECT articles.id AS id, articles.title As title, users.username AS username, articles.pubish AS pubished, categories.name AS category, count( comments.text ) AS comments FROM articles JOIN users ON articles.author = users.id LEFT JOIN categories ON articles.cat = categories.id LEFT JOIN comments ON articles.id = comments.item_id GROUP BY articles.id i dane baza wypluwa takie jakie mają być czyli: ![]() ale jak dodam jeszcze zapytanie o ocene (w tabeli z ocenami są kolumny id, item_id oraz rate przy czym rate to albo 1 albo -1). Zapytanie wygląda tak ale już jego wynik jest bardzo dziwny bo ani ilość komentarzy się nie zgadza ani ocena: SELECT articles.id AS id, articles.title As title, users.username AS username, articles.pubish AS pubished, categories.name AS category, count( comments.id ) AS comments, sum( rank.rank ) AS rank FROM articles JOIN users ON articles.author = users.id LEFT JOIN categories ON articles.cat = categories.id LEFT JOIN comments ON articles.id = comments.item_id LEFT JOIN rank ON articles.id = rank.item_id GROUP BY articles.id ![]() jak nie pytam o komentarze a tylko o ocene tez jest ok. Proszę o pomoc w rozwiązaniu tego problemu bo już nie wiem jak to ugryźć. Ten post edytował agmakonts 3.06.2009, 22:36:03 -------------------- Folio :: Blog |
|
|
![]()
Post
#2
|
|
![]() Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
W count() i sum() msuisz ztosować podzapytania zliczające tylko wartości dla aktualnego wiersza (czyli indywidualnie dla każdego artykułu czy tam co tam masz).
Dla przykładu masz zapytanie z jednej z moich aplikacji (tam też miały się wybierać z bazy ilosć odsłon, ilośc ocen itp.):
-------------------- Life's simple... You make choices and don't look back...
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 63 Pomógł: 0 Dołączył: 20.08.2008 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
Dzięki, zaczęło działac lepiej ale nie do końca.
teraz zapytanie wygląda tak:
i ocena wyłazi dobrze ale liczba komentarzy tylko w pierwszym przypadku się zgadza a w 2 pozostałych jest podwojona, co dalej robię źle? Ten post edytował agmakonts 3.06.2009, 23:01:32 -------------------- Folio :: Blog |
|
|
![]()
Post
#4
|
|
![]() Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
No teraz to błędu już nie widzę
![]() -------------------- Life's simple... You make choices and don't look back...
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 63 Pomógł: 0 Dołączył: 20.08.2008 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za pomoc, ten ostatni błąd był dziwny ale pomogło danie * zamiast coments.id w count komentarzy
![]() -------------------- Folio :: Blog |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 17:18 |