Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> segregowanie według danych z drugiej tabeli
radziopoke
post 12.03.2011, 09:48:05
Post #1





Grupa: Zarejestrowani
Postów: 125
Pomógł: 14
Dołączył: 2.06.2010

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


Nawet nie wiedziałem jaki dać temat , na moje pytanie smile.gif
do rzeczy:
mam dwie bazy:

tabela1
Przedmiot | data
------------------------------------------
Jabłko | 2011-01-01 14:03:19
Słoik | 2011-01-23 10:12:00
Piłka | 2011-02-13 13:01:14
Rower | 2011-03-01 9:43:32
------------------------------------------

tabela2
Przedmiot | Ocena| Data
------------------------------------------
Rower | 4 | 2011-03-01 12:12:12
Jabłko | 3 | 2011-03-01 20:35:11
Jabłko | 6 | 2011-03-03 1:12:36
Piłka | 1 | 2011-03-04 15:56:00
Słoik | 6 | 2011-03-06 11:01:31
Piłka | 2 | 2011-03-07 12:15:32
Jabłko | 5 | 2011-03-08 11:12:13
Rower | 2 | 2011-01-09 1:25:13
Jabłko | 1 | 2011-01-09 14:12:12
------------------------------------------

Chodzi teraz dokładnie o to, że chciałbym wypisać, Wszystkie 4 przedmioty z ich datą w pierwszej tabeli, ale żeby segregowało według średniej ocen dla tych przedmiotów ale wybierając tylko te oceny co są powyżej lub równe dacie 2011-03-04

wynik końcowy powinien wyglądać tak
Przedmiot | średnia ocen
------------------------------------------
Słoik | 6
Jabłko | 3
Piłka | 2
Rower | 1,5
------------------------------------------

Mam nadzieję, że zrozumiecie o co mi chodzi
Go to the top of the page
+Quote Post
erix
post 12.03.2011, 10:04:40
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Kurs MySQL przeczytany? WHERE zna?


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
radziopoke
post 12.03.2011, 10:15:42
Post #3





Grupa: Zarejestrowani
Postów: 125
Pomógł: 14
Dołączył: 2.06.2010

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


Znam już nie raz nawet na forum się odzywało.

Już prawie osiągnąłem cel zabrakło mi jeszcze tylko jednej rzeczy:
to mam

SELECT przedmiot, AVG( ocena ) AS srednia FROM tabela2 WHERE (TO_DAYS(now())-TO_DAYS(data)<8) GROUP BY przedmiot ORDER BY srednia

zrobiłem że pobiera dane z ośmiu ostatnich dni i wyświetla:

Przedmiot | średnia ocen
------------------------------------------
Słoik | 6
Jabłko | 3
Piłka | 2
Rower | 1,5
------------------------------------------

tylko jeszcze wcześniej zapomniałem do tego dodać że powinno dodać datę z pierwszej tabeli
czyli powinno wyglądać tak:

Przedmiot | średnia ocen | data
------------------------------------------
Słoik | 6 | 2011-01-23 10:12:00
Jabłko | 3 | 2011-01-01 14:03:19
Piłka | 2 | 2011-02-13 13:01:14
Rower | 1,5 | 2011-03-01 9:43:32
------------------------------------------

zapewne trzeba połączyć za pomocą LEFT JOIN tylko jeszcze nie wiem jak do do końca napisać
Go to the top of the page
+Quote Post
kefirek
post 12.03.2011, 20:39:24
Post #4





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

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


  1. SELECT t1.przedmiot, t1.DATA, (SELECT AVG(Ocena) FROM tabela2 WHERE t2.data>='2011-03-04') AS srednia_ocen FROM tabela1 t1 ORDER BY srednia_ocen DESC


Ten post edytował kefirek 12.03.2011, 20:40:08
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: 25.06.2025 - 14:58