Nejste přihlášen/a.

Přihlásit se do poradny

 

Vytvoření jednoduchého SQL dotazu

Od: strnad® odpovědí: 7 změna:

Mam dve MBD tabulky

Hlavni tabulka SBIRKA, kde jsou sloupce Autor_S, MistoPus_S
Tady jsou ve sloupci MistoPus_S spatne uvedena mista (doslo k hromadnemu prepisu hodnot na) SIRUP

Pomocna tabulka LONT, kde jsou sloupce AUTOR, MISTOPUS
Tady jsou hodnoty spravne uvedeny (u konkretniho autora treba Liberec, ale nektere jsou i prazdne / nevyplnene)

Potreboval bych vzorec, co prepise udaje v tabulce SBIRKA sloupec MistoPus_S, kde je uvedeno SIRUP podle vzoru tabulky LONT

Mohl by mi nekdo poradit, jak to napsat? Dekuji

 

 

7 odpovědí na otázku
Řazeno dle hodnocení

 

 


0x

Postup je zde: mysqltutorial.org/...

Bez dema si nedovolím konkrétní SQL dotaz, protože to chce prostě vyzkoušet. Zase taková rutina to pro mě není.

 

joudic*

0x
nejjednodussi je si udelat pomocny php soubor a vyselectovat si co je potreba a updatnout co je potreba

 


0x
Nikde ani nevidím o jakou db se jedná, je to SQL? (MySQL, postgresql, Oracle, mariadb, derby, javadb, SQL lire...) nebo Nosql? (monogodb, cassandra, grapql...)
Obecně je to nějaká forma update.
Plus jedna rada. Pouzivejte srozumitelná jména (sloupců tabulek...). Mistopus, lont je trochu wtf. Předpokládám že suffix s je pro určení datového typu. To už jsem také řádku let neviděl. Není to nutné a zhoršuje
to čitelnost modelu

 

au1

0x
nejjednosdussi vymazat vsechno z tabulky sbirka, vyexportovat lont do .xls a naimportovat do sbirka. druha moznost napsat script pro kazdej radek se zmenou promennych: update sbirka set mistopus_s= lont.mistopus where autor_s= lont.autor ;
takhle kazdej radek zvlast, da se to dobre nadatlit v xls pomoci funkce concatenate. sql prikaz plati pro oracle, mysql bude hodne podobnej, mozna dokonce stejnej. pred jakymkoliv updatem si udelej zalohy.
edit:nejaky chytry hlavy tu vymyslely blokovani apostrofu, takze lont.mistopus i lont.autor jsou hodnoty uzavreny v apostrofech

 


Jde o tabulky v Accessu a neni mozne tu SBIRKA smazat - jsou na ni vazby z jinych.

UPDATE Sbirka INNER JOIN?

 

au1

0x
1.vyexportuj do .xls tabulku lont kde budou jen 2 sloupce: select autor, mistopus from sbirka
2.otevri .xls soubor, do bunky C1 napis: =CONCATENATE("update sbirka set mistupus_s=*",B1,"* where autor=*",A1,"*;")
hvezdicky nahrad apostrofem, pac poradna blokuje
3.bunku C1 vezmi a zkopiruj az na posledni radek kde jsou data
4.zkopiruj celej sloupec C, vloz do editoru SQL, a pust jako script
5.commit v editoru, data jsou prepsany
nekde mezi tim udelej zalohu tabulky sbirka, kdyby se neco podelalo
au1
pardon, zapomel jsem na _s u autora. takze takhle:
=CONCATENATE("update sbirka set mistupus_s=*",B1,"* where autor_s=*",A1,"*;")

 

 


 

 

 

Přihlásit se k odběru odpovědí z této otázky:

Neneseme odpovědnost za správnost informací a za škodu vzniklou jejich využitím. Jednotlivé odpovědi vyjadřují názory jejich autorů a nemusí se shodovat s názorem provozovatele poradny Poradte.cz.

Používáním poradny vyjadřujete souhlas s personifikovanou reklamou, která pomáhá financovat tento server, děkujeme.

Copyright © 2004-2025 Poradna Poradte.cz. Všechna práva vyhrazena. Prohlášení o ochraně osobních údajů. | [tmavý motiv]