Cezikos
20.09.2013, 19:42:10
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.
USER_ID jest powtarzane w jednej tabeli jeśli tak to, źle zbudowaną masz bazę a do zmian liczby pkt używasz mysql update
Cezikos
20.09.2013, 19:53:14
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

)
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

poczytaj o relacjach o ile jeszcze tego nie robiłeś
mmmmmmm
20.09.2013, 23:09:56
Ale to nie rozwiązuje jego problemu. Dla niego rozwiązaniem będzie GROUP BY + SUM
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