![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 223 Pomógł: 27 Dołączył: 16.04.2008 Skąd: Bakutilu Ostrzeżenie: (0%) ![]() ![]() |
Witam mam oto taki problem:
mam 2 tabele 1. Oceny id ocena glosow what id_what 2. Filmy id title tresc kat date stat dstat act opened id_user Chce teraz wyciągnąć najwyżej ocenione filmy przy czym uwzględniając z tabeli filmy stat = 1 i dstat = 1 Ocena jest wyliczana tak: $ocena_ = $ocena_ / $glosow_; $ocena_ = round ($ocena_ , 1); Czyli dziele sume ocen z kolumny oceny przez ilość oddanych głosów z kolumny glosow Nie mam pomysłu jak to zrobić proszę o pomoc. Pzdr |
|
|
![]()
Post
#2
|
|
Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
Pokaż co do tej pory wymyśliłeś.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 223 Pomógł: 27 Dołączył: 16.04.2008 Skąd: Bakutilu Ostrzeżenie: (0%) ![]() ![]() |
$q = "SELECT * FROM oceny WHERE what = 'filmy' ORDER BY ocena DESC LIMIT 10";
potem w pętli wyciągam z tablei filmy, dane ale to się mija z celem. Dlatego pisze tutaj o pomoc |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 231 Pomógł: 1 Dołączył: 22.04.2007 Skąd: Rypin Ostrzeżenie: (0%) ![]() ![]() |
tzn zakladam ze jeden rekord w tabeli oceny jest dla jednego filmu to bylo by chyba tak:
i teraz np wykorzystanie
Ten post edytował djbarca 29.03.2010, 21:38:14 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 1 Dołączył: 17.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
select (o.ocena/o.glosow) ocena_srednia, f.* from oceny o, filmy f where o.id_what=f.id and f.stat=1 and f.dstat=1 order by ocena_srednia desc
tzn zakladam ze jeden rekord w tabeli oceny jest dla jednego filmu to bylo by chyba tak:
z jego struktury tabeli raczej bym wnioskowal ze tabela ocen odnosi sie ogolnie do ocen np: ocen ksiazek dlatego ma tam wstawiona kolumne "what" w takim wypadku left join zle zadziala bo nie wszystkie oceny beda odnosily sie do filmow i wskocza do wynikow null'e Ten post edytował blawat 29.03.2010, 21:48:08 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 1 Dołączył: 17.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
ogolnie to chyba to samo (IMG:style_emoticons/default/biggrin.gif) ogolnie to nie ... polecam doczytanie o rozniacach pomiedzy uzywaniem bezposredniej relacji tak jak podalem a uzyciem jej z joinm |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 231 Pomógł: 1 Dołączył: 22.04.2007 Skąd: Rypin Ostrzeżenie: (0%) ![]() ![]() |
racja sprawdziłem. ale i w twoim i w moim przkladzie jesli nie będzie oceny to nie zobaczymy filmu
Cytat select (o.ocena/o.glosow) ocena_srednia, f.* from oceny o, filmy f where o.id_what=f.id and f.stat=1 and f.dstat=1 order by ocena_srednia desc nie uwzględniłeś && what='filmy' byc moze chodzi o cos takiego:
Ten post edytował djbarca 29.03.2010, 22:13:38 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 1 Dołączył: 17.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
racja sprawdziłem. ale i w twoim i w moim przkladzie jesli nie będzie oceny to nie zobaczymy filmu nie uwzględniłeś && what='filmy' fakt przeoczenie z mojej strony (zaspany jestem (IMG:style_emoticons/default/winksmiley.jpg) byc moze chodzi o cos takiego:
po co na sile pchasz sie w join'y trzeba je najpierw dobrze zrouzmiec bo Twoje zapytanie nie zadziala tak jak powinno :/ krotka tutka z left joina: left join jesli moglo mi o cos wiecej chodzic to tylko o to:
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 231 Pomógł: 1 Dołączył: 22.04.2007 Skąd: Rypin Ostrzeżenie: (0%) ![]() ![]() |
no ok. teraz już nie wiem (IMG:style_emoticons/default/biggrin.gif) czy ja zle zrozumiałem . czy tak naprawdę ma być . możne to wina późnej pory. a co w wypadku gdy nie ma oceny? gdy dodany został nowy film, styryl stronnicuje to sobie na samym końcu chciałbym mieć te filmy bez komentarzy a Twoim zapytaniem pokażą się wszystkie z jakimś tam komentarzem. Ogólnie wiem jaka jest różnica w poszczególnych złączeniach albo lepiej wiem jaki efekt uzyskam stosując poszczególne złączenie. Jeśli się mylę to sry ...
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 1 Dołączył: 17.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
no ok. teraz już nie wiem (IMG:style_emoticons/default/biggrin.gif) czy ja zle zrozumiałem . czy tak naprawdę ma być . możne to wina późnej pory. a co w wypadku gdy nie ma oceny? gdy dodany został nowy film, styryl stronnicuje to sobie na samym końcu chciałbym mieć te filmy bez komentarzy a Twoim zapytaniem pokażą się wszystkie z jakimś tam komentarzem. Ogólnie wiem jaka jest różnica w poszczególnych złączeniach albo lepiej wiem jaki efekt uzyskam stosując poszczególne złączenie. Jeśli się mylę to sry ... pytanie bylo o filmy z ocena jesli by chcial wszytkie filmy bez wzgledu na to czy maja ocene czy nie to trzeba wtedy uzyc left joina przyczym kolejnosc tabel powinna byc odwrotna -> join dotyczyl by tabeli oceny a nie filmy tak czy siak jestes juz chyba bardzo zaspany (IMG:style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 231 Pomógł: 1 Dołączył: 22.04.2007 Skąd: Rypin Ostrzeżenie: (0%) ![]() ![]() |
no trochę .. zmiana czasu daje się trochę we znaki ..
Cytat Chce teraz wyciągnąć najwyżej ocenione filmy przy czym uwzględniając z tabeli filmy stat = 1 i dstat = 1 ogólnie masz racje , jakoś tak sobie na początku przyjąłem ze chce wszystkie filmy, to nawet, jakby chciał mieć zapytanie na wszystkie filmy to już jest zrobione... Ten post edytował djbarca 29.03.2010, 23:07:56 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 00:34 |