Zadejte hledaný výraz...

Sloučení tabulek MySQL

Martin Knor
verified
rating uzivatele
(3 hodnocení)
7. 1. 2010 13:26:14
Ahoj, mám dotaz. Jak by jste řešili v db tohle?
Jedná se mi o "sloučení" dvou tabulek, kde se data (a,b,c,d) mohou lišit.
Děkuji.
7. 1. 2010 13:26:14
https://webtrh.cz/diskuse/slouceni-tabulek-mysql#reply434285
Zhruba takhle:
CREATE TABLE vysledna
(ident char(1) primary key,
val1 int,
val2 int);
INSERT INTO vysledna (ident, val1) SELECT ident, val1 FROM tabulka1;
INSERT INTO vysledna (ident, val2) SELECT ident, val2 AS val FROM tabulka2
ON DUPLICATE KEY UPDATE val2 = val;
Píšu to jen sem, tak tam možná bude potřeba něco málo doladit.
7. 1. 2010 13:41:26
https://webtrh.cz/diskuse/slouceni-tabulek-mysql#reply434284
Napsal Soup;429607
Ahoj, mám dotaz. Jak by jste řešili v db tohle?
Jedná se mi o "sloučení" dvou tabulek, kde se data (a,b,c,d) mohou lišit.
Děkuji.
to samé co nademnou ale přes PHP
Já bych na to pustil nějaky php scriptík zhruba popis:
SELECT id, hodnota FROM tabulka1
teď while cyklus pro každou vybranou hodnotu
a klasický insert do společné tabulky na řádek se stejným id jako u tabulky1, sloupec tabulka1, a hodnotu co jsme si vytáhli selectem
to samé pro druhou tabulku
záleží jak se tabulky liší a na dalších věcech
neni to nejlepší řešení ale když to spustíš jednorázově tak to server nezabije ani s velkými tabulkami
7. 1. 2010 13:43:04
https://webtrh.cz/diskuse/slouceni-tabulek-mysql#reply434283
Martin Knor
verified
rating uzivatele
(3 hodnocení)
7. 1. 2010 13:44:18
Jde mi spíše o elegantní řešení přímo v db a né v php...
7. 1. 2010 13:44:18
https://webtrh.cz/diskuse/slouceni-tabulek-mysql#reply434282
Napsal Soup;429628
Jde mi spíše o elegantní řešení přímo v db a né v php...
Ja zas raději přimo vidim ve scriptu kde a co přesouvám ne jednou sem elegancí přímo v DB přišel o tabulky a to nemluvim o kombinovani tabulek, které byly malinko překombinované.
V DB je to nejrychlejší a nejelegantnější ale musíš vědět přesně co děláš jinak pak ty tabulky teda vypadaj.
7. 1. 2010 13:50:08
https://webtrh.cz/diskuse/slouceni-tabulek-mysql#reply434281
node
verified
rating uzivatele
(5 hodnocení)
7. 1. 2010 14:19:18
Sprav si view.
7. 1. 2010 14:19:18
https://webtrh.cz/diskuse/slouceni-tabulek-mysql#reply434280
duben
verified
rating uzivatele
(49 hodnocení)
7. 1. 2010 14:35:00
Predpokladam ze to potrebujes pouze vytahnout SQL dotazem z databaze.
To reseni pres PHP a cykly co tu zminuje Sajacz, z toho mi nabiha husi kuze. Zkus si takovyhle postup pro databazi s miliony zaznamu a na par dni bude mit pocitac co delat. Udelej to primo pres SQL a je to za par minut pri spravne indexaci.
Takze jedno z moznych spravnych reseni pres SQL v MySQL:
Pokud by mi nekdo neveril, nebo si to chtel vyzkouset (sam jsem to testoval protoze delam na MSSQL a to ma pro nektre fce jinou syntaxi).
Vytvoreni tabulek
Vlozeni testovacich dat
Kontrola ze mame data v tabulce1
Kontrola ze mame data v tabulce2
Kod pro spojeni, ale tady mame ve vysledku NULL misto 0
A tady je to uz cele spravne
7. 1. 2010 14:35:00
https://webtrh.cz/diskuse/slouceni-tabulek-mysql#reply434279
Kazan
verified
rating uzivatele
(4 hodnocení)
7. 1. 2010 14:48:54
duben: pekne reseni, dosahl jsem stejneho vysledku, jen s vice poddotazy, takze :thumbup:
7. 1. 2010 14:48:54
https://webtrh.cz/diskuse/slouceni-tabulek-mysql#reply434278
Martin Knor
verified
rating uzivatele
(3 hodnocení)
7. 1. 2010 15:00:27
Duben respect, máš +rep. Já to vyřešil tak, že jsem udělal výslednou tabulku v db a do ní solím data (budu s nimi ještě pracovat). Ale jinak je to opravdu elegantní.
7. 1. 2010 15:00:27
https://webtrh.cz/diskuse/slouceni-tabulek-mysql#reply434277
duben
verified
rating uzivatele
(49 hodnocení)
7. 1. 2010 16:00:25
Napsal Soup;429704
Duben respect, máš +rep. Já to vyřešil tak, že jsem udělal výslednou tabulku v db a do ní solím data (budu s nimi ještě pracovat). Ale jinak je to opravdu elegantní.
V tom případě stačí přidat nad výsledný dotaz
INSERT INTO vyslednatabulka (klic, hodnota1, hodnota2)
SELECT ... zbytek toho co jsem psal vyse a mas to naplnene jednim dotazem :)
7. 1. 2010 16:00:25
https://webtrh.cz/diskuse/slouceni-tabulek-mysql#reply434276
Pro odpověď se přihlašte.
Přihlásit