![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 22.07.2003 Skąd: Koszalin Ostrzeżenie: (0%) ![]() ![]() |
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 ![]() |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
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ć. -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 22.07.2003 Skąd: Koszalin Ostrzeżenie: (0%) ![]() ![]() |
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... |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
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. -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 22.07.2003 Skąd: Koszalin Ostrzeżenie: (0%) ![]() ![]() |
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ę... |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 23:29 |