Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z zapytanie SQL
piotrek8
post 30.03.2004, 16:15:19
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 rolleyes.gif
Go to the top of the page
+Quote Post
spenalzo
post 30.03.2004, 17:44:27
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ć.


--------------------

Go to the top of the page
+Quote Post
piotrek8
post 30.03.2004, 19:00:26
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...
Go to the top of the page
+Quote Post
DeyV
post 30.03.2004, 20:01:49
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..."
Go to the top of the page
+Quote Post
piotrek8
post 30.03.2004, 20:15:36
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ę...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 23:29