Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z zapytanie SQL
Forum PHP.pl > Forum > Bazy danych > MySQL
piotrek8
Mam problem z zapytaniem do bazy MySQL.
[sql:1:e4642c4104]
select users.id, (calendar.userid + newsboard.userid + download.userid) as ile

from users, calendar, newsboard, download

where users.id=newsboard.userid and users.id=calendar.userid and users.id=download.userid

group by id

order by ile desc
[/sql:1:e4642c4104]

O co chodzi:
-w kolumnach "userid" tabel "calendar", "newsboard" i "download" zapisywana jest informacja (ID) o użytkowniku, który odpowiednio w poszczególnych tabelach dodaje: datę do kalendarza, post na forum oraz uploaduje plik
-w kolumie "id" tabeli "users" znajdują się informacje o ID wszystkich użytkowników
-baza zwracać ma dwie kolumny: 1) ID użytkownika, 2) sumę uploadowanych plików, dodanych dat, wysłanych postów...
Zapytanie zwraca dziene wyniki rolleyes.gif
spenalzo
Cytat
Mam problem z zapytaniem do bazy MySQL.
[sql:1:c06f46350f]
group by id
[/sql:1:c06f46350f]

No ja sie nie dziwie... sprecyzuj po id której tabeli chcesz grupować.
piotrek8
Cytat
Cytat
Mam problem z zapytaniem do bazy MySQL.
[sql:1:8b819beeea]
group by id
[/sql:1:8b819beeea]

No ja sie nie dziwie... sprecyzuj po id której tabeli chcesz grupować.

Hmmm... Nie jestem pewien bo kolumna id znajduje sie tylko w users, reszta ma nazwę userid... W każdym razie zmieniłem i nic... Cały czas wyskakują dziwne wyniki...
DeyV
1. co to znaczy 'dziwne wyniki' ?
2. spróbuj zamist łączenia table na poziome where, skorzystać z JOIN, w zależności od potrzeb inner, albo left.
Zazwyczaj przy takim zapisie łatwiej jest zauważyć błędy logiczne zapytania.
piotrek8
Cytat
1. co to znaczy 'dziwne wyniki' ?

Na pierwszej pozycji pokazuje się użytkownik dla którego prawdziwa suma wynosi 16 a pokazuje się wynik 80. Na drugim jest użytkownik z prawdziwym wynikiem 17 a pokazuje sie wynik 54 itd itd. Nie zauważyłem żadnej prawidłowości, choć pewnie jakaś istnieje - nie wiem co to za liczby... Wyświetlana jest poza tym tylko kilku użytkowników...

Cytat
2. spróbuj zamist łączenia table na poziome where, skorzystać z JOIN, w zależności od potrzeb inner, albo left.
Zazwyczaj przy takim zapisie łatwiej jest zauważyć błędy logiczne zapytania.

Nie poruszam się zbyt biegle w SQL, więc raczej nici z tego... Wydaje mi się, że przedstawiłem problem dość jasno i mam nadzieję, że ktoś podejmie się wskazania błędów lub poprawienia kodu. Z góry dziękuję...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.