Portál AbcLinuxu, 29. července 2025 13:40
mysql> select * from test1; +-------+ | id | +-------+ | 55555 | | 88888 | | 44444 | +-------+ mysql> select * from test2; +-------+---------+----------+ | id | hodnota | language | +-------+---------+----------+ | 11111 | 1old | sk | | 22222 | 2old | sk | | 33333 | 3old | sk | | 66666 | 6old | sk | | 77777 | 7old | sk | | 88888 | 8old | sk | | 99999 | 9old | sk | | 55555 | 5old | pl | | 55555 | 5old | hu | +-------+---------+----------+ mysql> select * from test3; +-------+---------+----------+ | id | hodnota | language | +-------+---------+----------+ | 55555 | 5new-pl | pl | | 55555 | 55555sk | sk | | 55555 | 55555en | en | | 44444 | 4newsk | sk | | 88888 | 8newsk | sk | +-------+---------+----------+"id a language" je PRIMARY KEY Zmenené data aktualizujem s
UPDATE test1,test2,test3 SET test2.hodnota = test3.hodnota WHERE test1.id = test2.id AND test1.id = test3.id AND test2.language = test3.languageNedari sa mi však s pridaním nových dát. Skúšal som tento SELECT, ale vracia mi všetky údaje.
SELECT DISTINCT test3.id, test3.hodnota, test3.language FROM test3, test2, test1 WHERE test1.id = test3.id AND ( test3.id <> test2.id OR test3.language <> test2.language )Potrebujem, aby mi dotaz vrátil tieto údaje
| 55555 | 55555sk | sk | | 55555 | 55555en | en | | 44444 | 4newsk | sk |Ďakujem za pomoc
Standardní trik:
insert into TEST2(ID,LANGUAGE,HODNOTA) select N.ID,N.LANGUAGE,N.HODNOTA from TEST3 N left join TEST2 O on O.ID=N.ID and O.LANGUAGE=N.LANGUAGE where O.ID is null
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.