![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 235 Pomógł: 2 Dołączył: 30.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam następujący problem - mam dwie tabele, ratings oraz articles. Potrzebuję jakimś zapytaniem wyciągnąć z tabeli articles dane dot. artykułu, dołożyć do tego kolumnę zawierającą liczbę użytkowników którzy oceniło dany artykuł, oraz posortować wg. niej. Przykładowe dane: Kod Articles ------ | id | ------ | 1 | Ratings ------------------------------------------------------- | id | type | article_id | user_id | value | ------------------------------------------------------- | 1 | 1 | 1 | 1 | 5 | | 2 | 2 | 1 | 1 | 8 | | 3 | 1 | 1 | 2 | 7 | | 4 | 2 | 1 | 2 | 9 | | 5 | 1 | 1 | 3 | 4 | | 6 | 2 | 1 | 3 | 2 | Chciałbym żeby zapytanie zwróciło mi coś takiego: Kod Articles ----------------------------- | id | ratings_count | ----------------------------- | 1 | 3 | Dlaczego 3? Trzech użytkowników oceniło artykuł wg różnych kryteriów (kolumna type). Do tej pory wykombinowałem takie zapytanie:
Niestety zwraca mi to jedynie ile jest wpisów dotyczących danego artykułu, w tym wypadku będzie to 6, nie 3. Dodatkowo przy występowaniu innych kolumn w tabeli Articles musiałbym je dołożyć do Group By co wydajności raczej nie poprawi. Ktoś ma jakiś pomysł? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Po pierwsze oduczyć się tych głupot z MySQL, jak się grupuje, to się grupuje.
Nie mówię, że to jest najlepsze, ale działa. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 22:36 |