![]() |
![]() |
![]()
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. ![]() 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:
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łą. ![]() Pozdrawiam, pawelooss |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Spróbuj tak
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 27.09.2009 Skąd: Ruda Śląska Ostrzeżenie: (0%) ![]() ![]() |
OK, działa, ale mieli bardzo długo. Pewną bazę na localhoście przerobiło mi w ok. 6 minut, ale już trzy razy większą próbuje od godziny i końca nie widać.
Może jest jakieś inne rozwiązanie? Myślę, że o wiele wydajniejszym może być nawet zwykłe PHP + SQL od samego SQL, tych jak to napisać? ;> Z góry dzięki za pomoc i wskazówki. ![]() Pozdrawiam, pawelooss |
|
|
![]()
Post
#4
|
|
![]() 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. -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 19:06 |