Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Kłopotliwe zapytanie
dob
post
Post #1





Grupa: Zarejestrowani
Postów: 166
Pomógł: 0
Dołączył: 30.01.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Witam, zwaracam się z prośbą o pomoc w ułożeniu kodu SQL

mam 2 tabele
1) Tabela foto która międzyinnymi zawiera id zdjęcia (id), ilość oddanych na to zdjecie głosów (lglosow) oraz ich sumę (suma)
2) Tabela votes która zawiera takie informacje jak id zdjęcia (fotoid) ocene (ile) oraz kto taką ocenę wystawił (who)

Chciałbym wybrać 25 id z tabeli foto których ocena jest najlepsza. Problem w tym że ocene liczę w następujący sposób :
od sumy odejmuje najwyższą i najmniejszą wystawioną ocenę dla tego zdjęcia oraz dziele przez liczbę głosów którą pomniejszam o 2.
Działanie wygląda mniej więcej tak :
Kod
(`suma` - max( ile ) - min( ile )
) / ( `lglosow` -2 )

Oczywiscie 25 wyników chciałbym posortowac od największego do najmniejszego.

I teraz pytanie czy to jest w ogole wykonalne przy takiej konstrukcji tabel (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Ja tego nie potrafie zrobić (w ogole nie bardzo mam pojęcie o mysql (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) )

Za wszelką pomoc serdecznie dziękuje.

[edit]
Oczywiscie do łączenia z bazą wykorzystuje php, może jakies działania na tablicach czy cos....

Ten post edytował dob 12.01.2006, 22:21:41
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
dob
post
Post #2





Grupa: Zarejestrowani
Postów: 166
Pomógł: 0
Dołączył: 30.01.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Dzięki wielkie (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif)
tak wygląda po moich przeróbkach (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

  1. SELECT foto.*, (
  2. (
  3. foto.suma
  4. ) - max( votes.ile ) - min( votes.ile )
  5. ) / ( foto.lglosow -2 ) AS c
  6. FROM foto, votes
  7. WHERE votes.fotoid = foto.id AND foto.lglosow >=10 AND foto.oceny <2
  8. GROUP BY foto.id
  9. ORDER BY c DESC LIMIT 25


Co najwazniejsze działa!!
Jeszcze raz serdeczne dzięki!


[edit]
Jeszcze jedno pytanko
chciałem zsumować to;
  1. ((sum( foto.suma ) - max( votes.ile ) - min( votes.ile )) / ( foto.lglosow -2 ))
i całość podzielić przez sum(foto.id)

Utworzyłem taki kod :
  1. SELECT sum(
  2. (
  3. (
  4. sum( foto.suma ) - max( votes.ile ) - min( votes.ile ) ) / ( foto.lglosow -2 )
  5. )
  6. ) / sum( foto.id )
  7. FROM foto, votes
  8. WHERE votes.fotoid = foto.id AND foto.autor = 'ktoś'

No i jak zapewne się domyślasz nie działa i znów proszę tym razem chyba poraz ostatni o pomoc.

Pozdrawiam

Ten post edytował dob 13.01.2006, 01:19:31
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 27.12.2025 - 00:26