Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] Sumowanie danych z całej kolumy.
pawelooss
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 27.09.2009
Skąd: Ruda Śląska

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


Witam!

Jako iż sam sobie nie umiem z tym poradzić, chciałem zwrócić się do ekspertów z prośbą o pomoc. (IMG:style_emoticons/default/winksmiley.jpg)


Mam 2 tabele `posiadanie` i `dostanie`.

Tabela `posiadanie` obrazowo opisuje taką sytuację, że np.:
- Jacek ma 0 jabłek.
- Agata ma 2 jabłka.

Jej struktura wygląda więc następująco:
Kod
`imie`  | `ilosc_ma`
`Jacek` | 0
`Agata` | 2



Tabela `dostanie` obrazowo opisuje taką sytuację, że np.:
- Jacek dostał 5 jabłek.
- Agata dostała 3 jabłka.
- Jacek dostał 9 jabłek.

Jej struktura wygląda więc następująco:
Kod
`imie`  | `ilosc_dostal`
`Jacek` | 5
`Agata` | 3
`Jacek` | 9



Chciałbym zwiększyć ilość tych jabłek w tabeli `posiadanie` o dane z tabeli `dostanie`, żeby na końcu okazało się, że np.:
- Jacek ma 14 jabłek.
- Agata ma 5 jabłek.


Próbowałem zapytania:
  1. UPDATE `posiadanie` SET `ilosc_ma` = `ilosc_ma` + (SELECT `ilosc_dostal` FROM `dostanie` WHERE `posiadanie`.`imie` = `dostanie`.`imie`);

lecz wyświetliło mi błąd:
Kod
Subquery returns more than 1 row



Pewnie rozwiązanie będzie w miarę proste, ale nie umiem samodzielnie na nie wpaść. Proszę o pomoc! Odpowiedzi wynagrodzę oczywiście pochwałą. (IMG:style_emoticons/default/winksmiley.jpg)

Pozdrawiam,
pawelooss
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Załóż index na pole imie oraz na pole ilosc_dostal (typ indexu "INDEX") na pewno pomoże.
Jeżeli nadal wynik będzie dość słaby to możesz wykonywać taką operację w php krok po kroku
1) Pobranie sumy ilosc_dostal dla podanego imienia
2) Update rekordów, które to imie zawierają.
Niestety nie powiem Ci czy byłoby to znacznie szybsze aczkolwiek dzieki temu będziesz śledził postęp operacji.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.10.2025 - 05:23