Anonymní profil marthy – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil marthy – Programujte.comAnonymní profil marthy – Programujte.com

 

Příspěvky odeslané z IP adresy 193.85.210.–

marthy
MySQL › UPDATE tabulky se Selectem
31. 10. 2012   #165622

Nevím jestli jsem pocohpil s těmi klíči, mám primary key na player_id, aktualizoval jsem dotaz, ovšem stále data nedoplní:

INSERT INTO jos_saves (jos_saves.player_id,jos_saves.branky )
SELECT jos_saves.player_id, sum( jos_joomleague_match_events.event_sum )
FROM jos_saves
LEFT OUTER JOIN jos_joomleague_match_events ON jos_saves.player_id = jos_joomleague_match_events.player_id
WHERE jos_joomleague_match_events.event_type_id =7
AND jos_joomleague_match_events.project_id =7
GROUP BY jos_saves.player_id
ON DUPLICATE KEY UPDATE jos_saves.player_id=jos_saves.player_id

V tom souboru jsou dvě tabulky jos_joomleague_match_events a jos_saves

marthy
MySQL › UPDATE tabulky se Selectem
31. 10. 2012   #165621
marthy
MySQL › UPDATE tabulky se Selectem
31. 10. 2012   #165614

#5 KIIV
Ano neměl, teď jsem ho přidal a po spuštění query mi to neudělá s tabulkou nic, query projde ale změni 0 záznamů.

MySQL › UPDATE tabulky se Selectem
31. 10. 2012   #165608

tak už mi to jede, výsledek je však ten, že se přidají další řádky s hodnotama, já bych potřewboval doplnit ty původní...

MySQL › UPDATE tabulky se Selectem
31. 10. 2012   #165605

#2 KIIV
Díky za odpověď. Takže pokud to udělám nějak takto, tak dotaz proběhne ale hodnoty se nenaplní...mám správně tu klauzulu on duplicate key update?

insert into jos_saves (jos_saves.player_id,jos_saves.branky )
SELECT jos_saves.player_id,sum( jos_joomleague_match_events.event_sum )
FROM jos_saves
LEFT JOIN jos_joomleague_match_events ON jos_joomleague_match_events.player_id = jos_saves.player_id
WHERE (jos_joomleague_match_events.event_type_id =7)
group by jos_saves.player_id
ON DUPLICATE KEY UPDATE jos_saves.player_id=jos_saves.player_id
MySQL › UPDATE tabulky se Selectem
31. 10. 2012   #165602

Dobrý den, potřeboval bych helfnout s updatem tabulky v mysql. Na základě selectu chci updatenout data v jiné tabulce. V tabulce jos_saves mám uložené player_id a k nim statistiky. Potřebuju doplnit data ve sloupci branky na základě selectu, kterým natáhnu data z jiné tabulky.

Tabulka jos_saves

player_id zakroky branky uspesnost
49 NULL NULL 0
20 NULL NULL 0
46 NULL NULL 0
5 NULL NULL 0
68 NULL NULL 0
88 NULL NULL 0
136 NULL NULL 0

Select na výpis branek:

SELECT jos_saves.player_id, sum( jos_joomleague_match_events.event_sum ) as branek
FROM jos_saves
LEFT OUTER JOIN jos_joomleague_match_events ON jos_joomleague_match_events.player_id = jos_saves.player_id
WHERE (
jos_joomleague_match_events.event_type_id =8
)
GROUP BY jos_saves.player_id

Výstup ze selectu:

player_id branek
5 3
68 3
136 4

Celé query na základě, kterého bych chtěl do tabulky jos_saves natáhnout zákroky na základě selectu jsem napsal takto, je to ovšem syntakticky špatně:

update jos_saves
set jos_saves.zakroky=sum( jos_joomleague_match_events.event_sum )

SELECT jos_saves.player_id, sum( jos_joomleague_match_events.event_sum ) AS branek
FROM jos_saves
LEFT OUTER JOIN jos_joomleague_match_events ON jos_joomleague_match_events.player_id = jos_saves.player_id
WHERE (
jos_joomleague_match_events.event_type_id =8)
group by jos_saves.player_id

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý