porovnani 2 tabulek v MySQL

Jan Bernard jan.bernard na nms.cz
Čtvrtek Únor 20 12:09:09 CET 2003


On Thu, 20 Feb 2003, Karel Zak wrote:

> > >     UPDATE t1 SET attr='neco' WHERE pk NOT IN (SELECT pk FROM t2);
> >
> > bohuzel, vnorene selecty MySQL neumi.
>
>  Tusil jsem a chtel jsem to puvodne napsat trosku stouraveji ("V
>  poradnych SQL..." :-)

:)  nojo, az bude cas, slibuju ze nainstaluju PostgreSQL..

>  Tak mozna pokud podporuje "FROM":
>  UPDATE t1 SET attr='neco' FROM t2 WHERE t1.pk != t2.pk;

bohuzel, ani to nepodporuje. UPDATE umi jen toto:

UPDATE [LOW_PRIORITY] [IGNORE] tbl_name
    SET col_name1=expr1 [, col_name2=expr2 ...]
    [WHERE where_definition]
    [ORDER BY ...]
    [LIMIT rows]

s tim ze ve where nemuze byt vnoreny select...

Mam obavu ze to budu muset udelat tak, jak jsem drive psal.  Pripadne
alespon zkusim vymyslet SELECT, ktery mi vrati IDcka radku, ktere v t1
nejsou a ten potom budu prochazet pojednom a delat prislusne update v t2.
Ach jo.

Kazdopadne diky za pomoc.
JB.


PS: ted je nova verze MySQL 4, je mozne ze tam uz update from nebo vnoreny
select funguje, ale v nejblizsi dobe update u mne na serveru neni mozny,
takze jsem se o to nezajimal..




Další informace o konferenci Databases