Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> zliczanie wielu wartosci
Kinool
post 22.12.2004, 14:41:20
Post #1





Grupa: Zarejestrowani
Postów: 560
Pomógł: 0
Dołączył: 15.07.2003
Skąd: Kwidzyn

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


witam czy jest możliwe zarobić w jednym zapytaniu czegoś takiego:

tabela uczen:
uczen_id, user_name, klasa_id

tabela sprawdziany:
sprawdzian_id, uczen_id, przedmiot_id, ocena, czas

tak mniej więcej wyglądają tabele z jednego przedmiotu może być kilka sprawdzianów wiec jeden uczeń może dostac kilka ocen, chciał bym zliczyć ile dany uczen ma 5, 4, 3 itd i z jakich przedmiotów i właśnie nie wiem czy można to zrobić to w jednym zapytaniu czy trzeba rozbić na kilka zapytan dla kazdej oceny odzielnie?

acha i jeszcze jedno smile.gif czy szybsze jest zlaczanie przez JOIN
  1. SELECT uczen.*
  2. FROM uczen LEFT JOIN sprawdziany ON (sprawdziany.uczen_id=uczen.uczen_id)
czy
  1. SELECT uczen.*
  2. FROM uczen, sprawdziany WHERE sprawdziany.uczen_id=uczen.uczen_id


(pomijajac co sie pobiera, jedynie samo laczenie)
czy nie ma to zadnego znaczenia na wydajnosci?

Ten post edytował Kinool 22.12.2004, 14:46:02


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
popbart
post 22.12.2004, 15:32:19
Post #2





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 22.04.2004
Skąd: Żoliborz

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


Cytat
chciał bym zliczyć ile dany uczen ma 5, 4, 3 itd i z jakich przedmiotów

  1. SELECT uczen_id,przedmiot_id,ocena,count(sprawdziany.sprawdzian_id) AS ile
  2. FROM sprawdziany GROUP BY przedmiot_id,ocena
  3. ORDER BY uczen_id


--------------------
Visual Basic - kto by pomyślał :)
Go to the top of the page
+Quote Post
Kinool
post 22.12.2004, 15:47:29
Post #3





Grupa: Zarejestrowani
Postów: 560
Pomógł: 0
Dołączył: 15.07.2003
Skąd: Kwidzyn

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


nie o to mi chodzi

che wiedziec ile ma 5, ile ma 4, ile ma 3 nie ile jest wszystkich ocen razem tylko poszczegolnych ocen

np. ze oceny 5 jest 8 oceny 3 jest 12 smile.gif


--------------------
Go to the top of the page
+Quote Post
DeyV
post 22.12.2004, 17:06:32
Post #4





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




ad 2.
FROM uczen, sprawdziany jest równoznaczne z INNER JOIN.
Ja jednak preferuję formę JOIN, z uwagi na to, że dzięki niej zapytania są znacznie bardziej czytelne.

ad 1.
Ja nadal nie rozumiem, co chcesz osiągnąć.
Podaj może przykładowe dane oraz wyniki, jakie chciałbyś otrzymać.


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post
Kinool
post 22.12.2004, 17:55:39
Post #5





Grupa: Zarejestrowani
Postów: 560
Pomógł: 0
Dołączył: 15.07.2003
Skąd: Kwidzyn

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


powiedzmy ze w tabeli sprawdziany sa dane dotyczace sprawdzianu, jego czas numer sprawdzianu (id) przedmiotu z jakiego byl sprawdzian (id), uczen (jego id) oraz ocena jaka dostal uczen za sprawdzian

powiedzmy ze sprawdziany byly z matmy, polaka, biologi i fizyki
i ktos dostal nastepujace oceny 4, 5, 4, 3

i tera chcialbym wiedziec ile bylo ocen dobrych, bardzo dobrych, dostatecznych itp

czli zapytanie powinno dac w wyniku cos takiego

bd 1 (jedna piatka)
db 2 (dwie dobre)
dst 1 (jedna dostateczna)

moglbym to zobic poprzez
  1. SELECT COUNT(*)
  2. FROM sprawdziany WHERE ocena=5
zrobic relace z tabela uczi i wiedziec np ile ktos mial 5 powiedzmy z matmy czy w jakims tam okresie ale dla kazdej oceny musial bym robc takie zapytanie i chodzi mi o to czy da sie to zrobic w jednym


--------------------
Go to the top of the page
+Quote Post
popbart
post 22.12.2004, 19:57:16
Post #6





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 22.04.2004
Skąd: Żoliborz

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


Cytat
che wiedziec ile ma 5, ile ma 4, ile ma 3 nie ile jest wszystkich ocen razem tylko poszczegolnych ocen


Dlatego celowo zgrupowalem po przedmiocie i ocenie,przetestuj moze te zapytanie a nie macisz tylko angrysmiley.gif


--------------------
Visual Basic - kto by pomyślał :)
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: 19.07.2025 - 06:48