Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL]Grupowanie i wypisywanie
Cezikos
post 20.09.2013, 19:42:10
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 20.09.2013

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


Cześć !

Jako, że raczkuję w bazach danych MySQL zrobiłem w ramach ćwiczeń tabelę, która posiada
ID | USER_ID | NICK | PKT

ID > primary key i auto increment
USER_ID > ID gracza, który bierze udział w turnieju (wpisywana ręcznie, może się powtarzać)
NICK > wiadomo
PKT > Ilość pkt, które zdobył w jednej z faz

Mój problem polega na tym iż USER_ID powtarza mi się i chcę zsumować temu samemu użytkownikowi z turnieju jego wszystkie pkty na podst. USER_ID i wypisać wszystkich użytkowników, tak żeby USER_ID już się nie powtarzało, a PKT były zsumowane. Może trochę zawile, ale myślę, że zrozumiecie.
Go to the top of the page
+Quote Post
com
post 20.09.2013, 19:46:53
Post #2





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


USER_ID jest powtarzane w jednej tabeli jeśli tak to, źle zbudowaną masz bazę a do zmian liczby pkt używasz mysql update wink.gif
Go to the top of the page
+Quote Post
Cezikos
post 20.09.2013, 19:53:14
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 20.09.2013

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


O komendzie UPDATE wiem, ale co, gdy już jest baza zbudowana ? Jest na to jakiś ratunek ? (Pytam się, gdyż lepiej zrobić błąd w ćwiczeniach niż w praktyce).
Co do USER_ID zrobic w drugiej tabelce i wtedy powiązać z nickiem z obu tabel ?(Myśląc logicznie zaoszczędzi się miejsce biggrin.gif)
Go to the top of the page
+Quote Post
com
post 20.09.2013, 20:00:14
Post #4





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


no to tak jak powiedziałem trzeba unikać takich sytuacji, żeby powielać klucze np poprzez ustawienie dla rekordów UNIQUE KEY , a USER_ID z tabeli 1 łączysz z tabelą 2 relacją, patrząc na strukturę 1 tabeli właśnie za pomocą tego pola wink.gif poczytaj o relacjach o ile jeszcze tego nie robiłeś wink.gif
Go to the top of the page
+Quote Post
mmmmmmm
post 20.09.2013, 23:09:56
Post #5





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

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


Ale to nie rozwiązuje jego problemu. Dla niego rozwiązaniem będzie GROUP BY + SUM
Go to the top of the page
+Quote Post
com
post 20.09.2013, 23:25:23
Post #6





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


masz oczywiście rację, ale jak sam autor napisał się dopiero uczy, a robienie "syfu" w bazie nauczy go złych praktyk choć oczywiście słuszna uwaga, że to rozwiązuje jego problem wink.gif
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: 7.07.2025 - 00:25