Mysql update...trebam pomoć oko azuriranja tablice

pozdrav. Trebam pomoć oko ovoga. Trebao bi ta mi update jednu tablicu s podacima iz druge. Baza podataka je nba statistika. Prva teblica je izgleda:
Tablica 1.
CREATE TABLE liga (
ser_br_kl VARCHAR(10) PRIMARY KEY,
klub VARCHAR(30),
Z SMALLINT NOT NULL default ‘0’,
P SMALLINT NOT NULL default ‘0’,
KR SMALLINT NOT NULL default ‘0’,
bodova SMALLINT NOT NULL default ‘0’
);

A druga je oblika:
Tablica 2.
CREATE TABLE susreti (
datum DATE,
domacin VARCHAR(30),
gost VARCHAR(30),
koseva_d SMALLINT NOT NULL default ‘0’,
koseva_g SMALLINT NOT NULL default ‘0’,
br_isklj_d SMALLINT NOT NULL default ‘0’,
br_isklj_g SMALLINT NOT NULL default ‘0’,
sl_bacanja_d SMALLINT NOT NULL default ‘0’,
sl_bacanja_g SMALLINT NOT NULL default ‘0’,
gledatelja SMALLINT NOT NULL default '0’
bodova_d SMALLINT NOT NULL default ‘0’,
bodova_g SMALLINT NOT NULL default ‘0’,
);

Sada bi ja trebao da mi s podacima iz tablice susreti update tablicu liga. Tocnije pola liga.Z, liga.P, liga. KR i bodova. Ja sam napravio upit ali mi samo radi update za gostujući klub. Upit izgleda ovako:
“UPDATE liga SET
Z=Z+(SELECT SUM(koseva_d) FROM susreti WHERE klub=domacin ),
P=P+(SELECT SUM(koseva_g) FROM susreti WHERE klub=domacin),
bodova=bodova+(SELECT SUM(bodova_d)FROM susreti WHERE klub=domacin),
Z=Z+(SELECT SUM(koseva_g) FROM susreti WHERE klub=gost),
P=P+(SELECT SUM(koseva_d) FROM susreti WHERE klub=gost),
bodova=bodova+(SELECT SUM(bodova_g)FROM susreti WHERE klub=gost),
KR=Z-P”;

ako itko zna kako mi pomoći li me uputiti u rješenje bio bih zahvalan.

ako je svaki klub u bazi barem jednom gost i barem jednom domaćin tvoj upit će radit

kad nije tako problem je što ti ovakav upit ti za sumu daje NULL, a ne 0 i zbrajanja bude pogrešno
SELECT SUM(koseva_d) FROM susreti WHERE klub=domacin

to možeš riješit tako da ako je suma NULL pretvori to odmah u 0 i onda bi upit trebao izgledat nešto ovako

“UPDATE liga SET
Z=Z+(SELECT IFNULL(SUM(koseva_d),0) FROM susreti WHERE klub=domacin ),
P=P+(SELECT IFNULL(SUM(koseva_g),0) FROM susreti WHERE klub=domacin),
bodova=bodova+(SELECT IFNULL(SUM(bodova_d),0) FROM susreti WHERE klub=domacin),
Z=Z+(SELECT IFNULL(SUM(koseva_g),0) FROM susreti WHERE klub=gost),
P=P+(SELECT IFNULL(SUM(koseva_d),0) FROM susreti WHERE klub=gost),
bodova=bodova+(SELECT IFNULL(SUM(bodova_g),0) FROM susreti WHERE klub=gost),
KR=Z-P”;

e puno hvala pomoglo je…care ako budes sta trebo samo se javi puno sam zahvalan…hvala jos jednom…

nema na čemu, dugo nisam radio s sqlom pa dobro dođe da se malo podsjetim :slight_smile:


Copyright © 2020 WM Forum - AboutContact - Sponsored by: Mydataknox & Webmaster.Ninja