Portál AbcLinuxu, 22. července 2025 16:24
UPDATE nuke_stories_zal set comments.nuke_stories_zal=soucet where sid.nuke_stories_zal IN ( SELECT COUNT(sid) AS soucet, sid FROM nuke_comments GROUP BY sid )Spodni cast samostatne funguje a vraci tabulku se sloupci soucet a sid. Predem diky za pomoc.
Není problem v tom, že 3.23 neumí poddotaz ?
UPDATE nuke_stories_zal SET nuke_stories_zal.comments = count(nuke_comments.sid) FROM nuke_comments JOIN nuke_stories_zal ON nuke_stories_zal.sid = nuke_comments.sid GROUP BY nuke_comments.sidA krom toho mas v
set
a where
IMHO prehozene jmena sloupcu a tabulek Ty vole! Já chci taky databázi, která umí klauzili FROM
v UPDATE
statementu.
update ... from ... join
neni z moji hlavy - MSSQL to umi a tam jsem se s tim taky setkal poprve. A taky jsem na to hledel jak tele na nove vrata.update d set d.typ_uhrady = nova_hodnota from #davka d join #faktur f on f.id_poj = d.id_poj and f.id_icz = d.id_icz where f.akce = 'ZMEN_TYP_UHRADY'A taky
delete d from #davka d join #fakt f on f.id_poj = d.id_poj where f.akce = 'NEFAKTURUJ'Mozna to je nejaky "MS-standard", to nevim. Ale urcite to neni k zahozeni. Updatovat jednu tabulku podle podminky na jine tabulce... A o to mi slo v me odpovedi - on proste IMHO potrebuje ty tabulky nejak spojit.
Tak si spusť postgres!
No, já nevím. Podle mě ten dotaz fungovat nemůže, protože je tak trošku syntakticky špatně:
UPDATE nuke_stories_zal SET comments.nuke_stories_zal = soucet WHERE sid.nuke_stories_zal IN (SELECT COUNT(sid) AS soucet, sid FROM nuke_comments GROUP BY sid)
Jak je vidět z přepisu:
SELECT
statement v IN
klauzuli vrací dva sloupce, přestože levý operand má sloupec jen jedenSET
klauzuli se UPDATE
statement odkazuje na tabulku (nebo alias tabulky) COMMENTS
, která není definovanáNUKE_STORIES_ZAL
, ale sloupec SOUCET
v ní patrně neexistuje a patrně to má být odkaz na sloupec v korelovaném poddotazuSprávně ten dotaz má být:
UPDATE stories s SET s.story_comments_cnt = (SELECT COUNT(1) FROM comments cmnts WHERE cmnts.story_id = s.story_id) /
V příloze je celý skript (struktura plus testovací data). Hodně štěstí.
A můžeme poprosit o příklad? Klidně to může být také nějaký skript
to bude tim ze mysql je pseudodatabaze, jsem zkousel v 5tce delat storky, co ta db delala to by jeden neveril....a hlavne mela problem s backupem dokonce zapominala ze ma triggery a storky a backupy delala bez :)))) zahodte to..
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.