[ nnn @ 03.05.2009. 19:36 ] @
Ovako pojednostavicu

Imam tabelu games koja ima
id,
gamestate
...
Tabela gameplayers koja ima
id,
gameid
...

imam jos par tabela koje imaju gameid.

sad ono sto meni treba je

Delete from botdb.gameplayers d where d.gameid = SELECT id FROM botdb.games g where g.gamestate =16;

Samo sto ovo ne radi ali se nadam da ste svatili sta hocu. Znaci hocu da iz tabele gameplayers( a i iz drugih ) izbrisem one redove gde je gameid = id iz games ali samo onima gde je gamestate =16.

Bio bi veoma zahvalan za pomoc. Hvala.
[ bogdan.kecman @ 03.05.2009. 20:19 ] @
to sto si hteo se pise ovako:

Code:

DELETE FROM t1 WHERE t1.id IN (SELECT t2.id FROM t2 WHERE t2.state=16);


pritom ti to brise slog samo iz tabele t1 ... obrati paznju da mozes

Code:

DELETE FROM t1, t2, t3 WHERE t1.id=t2.id AND t2.id=t3.id AND t2.state=16;


samo proveri prvo na test tabelama sa test podacima da li radi tacno to sto ocekujes da radi :D
[ nnn @ 04.05.2009. 01:12 ] @
Hvala puno. Radi, ovako sam napravio


Code:


Delete from botdb.dotaplayers where gameid IN (SELECT id FROM botdb.games where gamestate =16);
Delete from botdb.gameplayers where gameid IN (SELECT id FROM botdb.games where gamestate =16);
Delete from botdb.dotagames   where gameid IN (SELECT id FROM botdb.games where gamestate =16);
Delete FROM botdb.games g where g.gamestate =16;