Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Update całej tabeli o dane z innej tabeli
Luke_Star
post 23.03.2007, 22:15:03
Post #1





Grupa: Zarejestrowani
Postów: 129
Pomógł: 2
Dołączył: 17.01.2005

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


Mam problem ponieważ nie wiem jak zrobic aby jedno zapytanie aktualizowało całą tabele. Problem jest taki:

mam tabele z wieloma rekordami o takiej strukturze:

TABLE dane (
Euro INT,
PLN INT,
User Varchar(60),
)

w tej tabeli zawieraja sie dane dotyczace ilości pieniedzy. Druga tabela to tabela z wartościami które maja podwyższać liczbe Euro lub PLN według użytkownika. Oto jest struktura:

TABLE: zwieksz (
zw_Euro INT,
zw_PLN INT,
User Varchar(60),
)

chce zrobic tak aby po wywołaniu jednego zapytania wszystkie rekordy w tabeli dane zostały zwiekszone o wartości z tabeli zwieksz (oczywiście według wartości user). Po kombinacjach z UPDATE doszłem jedynie do błedów :/ Moglibyście pomóc?


--------------------
Słowa, słowa, słowa... - Hamlet || Funkcje, funkcje, funkcje... - Luke Star
--------------------------------------
Portal Literacki: ( |||------- ) 30%
Go to the top of the page
+Quote Post
shpyo
post 23.03.2007, 23:08:25
Post #2





Grupa: Zarejestrowani
Postów: 574
Pomógł: 2
Dołączył: 13.04.2004
Skąd: Lublin

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


  1. UPDATE dane SET euro=euro+zwieksz.euro_zw, pln=pnl+zwieksz.pln_zw WHERE user=zwieksz.user

a tak próbowałeś (pisane z palca - teoretycznie powinno działać tongue.gif)?
edit: dopiero teraz zauważyłem, że nie zwiększał tylko zmieniał.

Ten post edytował shpyo 24.03.2007, 08:57:42


--------------------
Go to the top of the page
+Quote Post
Luke_Star
post 23.03.2007, 23:22:39
Post #3





Grupa: Zarejestrowani
Postów: 129
Pomógł: 2
Dołączył: 17.01.2005

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


zwraca mi:
ERROR 1054 (42S22): Unknown column 'zwieksz.user' in 'field list'


--------------------
Słowa, słowa, słowa... - Hamlet || Funkcje, funkcje, funkcje... - Luke Star
--------------------------------------
Portal Literacki: ( |||------- ) 30%
Go to the top of the page
+Quote Post
Mary$
post 23.03.2007, 23:29:48
Post #4





Grupa: Zarejestrowani
Postów: 113
Pomógł: 1
Dołączył: 19.02.2007
Skąd: 3city

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


bo musisz napisać User, a nie user. Duże i małe litery się liczą. To samo z innymi polami. masz PLN, a nie pln

Ten post edytował Mary$ 23.03.2007, 23:30:23


--------------------
Nie ma rzeczy niemożliwych - są tylko czasochłonne i mało opłacalne.
Go to the top of the page
+Quote Post
Luke_Star
post 23.03.2007, 23:37:21
Post #5





Grupa: Zarejestrowani
Postów: 129
Pomógł: 2
Dołączył: 17.01.2005

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


bez wzgledu na to jak pisze zwraca to samo


--------------------
Słowa, słowa, słowa... - Hamlet || Funkcje, funkcje, funkcje... - Luke Star
--------------------------------------
Portal Literacki: ( |||------- ) 30%
Go to the top of the page
+Quote Post
Norbas
post 23.03.2007, 23:49:07
Post #6





Grupa: Zarejestrowani
Postów: 100
Pomógł: 1
Dołączył: 6.02.2006

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


Sprawdź:
  1. UPDATE dane SET Euro=Euro+(SELECT zw_Euro FROM zwieksz WHERE zwieksz.User=dane.User),
  2. PLN=PLN+(SELECT zw_PLN FROM zwieksz WHERE zwieksz.User=dane.User)
  3. WHERE dane.User IN (SELECT User FROM zwieksz)

Jeżeli jesteś pewien, że każdy rekord z tabeli 'dane' ma swój odpowiednik w tabeli 'zwieksz', to można opuścić ostatni warunek WHERE


--------------------
Go to the top of the page
+Quote Post
shpyo
post 24.03.2007, 09:07:57
Post #7





Grupa: Zarejestrowani
Postów: 574
Pomógł: 2
Dołączył: 13.04.2004
Skąd: Lublin

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


  1. UPDATE dane d, zwieksz z SET d.euro=d.euro+z.euro_zw, d.pln=d.pln+z.pln_zw WHERE d.user=z.user

stworzyłem u siebie te tabele. Takie zapytanie mi wyszło i działa.

Ten post edytował shpyo 24.03.2007, 09:08:27


--------------------
Go to the top of the page
+Quote Post
Luke_Star
post 24.03.2007, 13:29:56
Post #8





Grupa: Zarejestrowani
Postów: 129
Pomógł: 2
Dołączył: 17.01.2005

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


Nie wiem moze to wina wersji mojego MySQL'a ale twoja wersja shpyo nie działa (wywala ten sam bład). Natomiast wersja Norbas'a trybi bezproblemowo. Ale dziekuje wam obojgu za pomoc.


--------------------
Słowa, słowa, słowa... - Hamlet || Funkcje, funkcje, funkcje... - Luke Star
--------------------------------------
Portal Literacki: ( |||------- ) 30%
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.06.2025 - 23:26