abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 02:11 | Komunita

    Všem čtenářkám a čtenářům AbcLinuxu krásné Vánoce.

    Ladislav Hagara | Komentářů: 17
    včera 02:00 | Nová verze

    Byla vydána nová verze 7.0 linuxové distribuce Parrot OS (Wikipedie). S kódovým názvem Echo. Jedná se o linuxovou distribuci založenou na Debianu a zaměřenou na penetrační testování, digitální forenzní analýzu, reverzní inženýrství, hacking, anonymitu nebo kryptografii. Přehled novinek v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    23.12. 18:33 | Nová verze

    Vývojáři postmarketOS vydali verzi 25.12 tohoto před osmi lety představeného operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME Shell on Mobile, KDE Plasma Mobile, Phosh a Sxmo.

    Ladislav Hagara | Komentářů: 0
    23.12. 13:55 | Nová verze

    Byla vydána nová verze 0.41.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 6.1 nebo novější a také libplacebo 6.338.2 nebo novější.

    Ladislav Hagara | Komentářů: 0
    23.12. 12:44 | Nová verze

    Byla vydána nová verze 5.5 (novinky) skriptovacího jazyka Lua (Wikipedie). Po pěti a půl letech od vydání verze 5.4.

    Ladislav Hagara | Komentářů: 0
    22.12. 23:44 | Nová verze

    Byla vydána nová verze 5.4.0 programu na úpravu digitálních fotografií darktable (Wikipedie). Z novinek lze vypíchnout vylepšenou podporu Waylandu. Nejnovější darktable by měl na Waylandu fungovat stejně dobře jako na X11.

    Ladislav Hagara | Komentářů: 0
    21.12. 05:00 | Nová verze

    Byla vydána beta verze Linux Mintu 22.3 s kódovým jménem Zena. Podrobnosti v přehledu novinek a poznámkách k vydání. Vypíchnout lze, že nástroj Systémová hlášení (System Reports) získal mnoho nových funkcí a byl přejmenován na Informace o systému (System Information). Linux Mint 22.3 bude podporován do roku 2029.

    Ladislav Hagara | Komentářů: 2
    21.12. 01:55 | Nová verze

    GNU Project Debugger aneb GDB byl vydán ve verzi 17.1. Podrobný přehled novinek v souboru NEWS.

    Ladislav Hagara | Komentářů: 0
    19.12. 17:22 | IT novinky

    Josef Průša oznámil zveřejnění kompletních CAD souborů rámů tiskáren Prusa CORE One a CORE One L. Nejsou vydány pod obecnou veřejnou licenci GNU ani Creative Commons ale pod novou licencí OCL neboli Open Community License. Ta nepovoluje prodávat kompletní tiskárny či remixy založené na těchto zdrojích.

    Ladislav Hagara | Komentářů: 14
    19.12. 17:00 | Komunita

    Nový CEO Mozilla Corporation Anthony Enzor-DeMeo tento týden prohlásil, že by se Firefox měl vyvinout v moderní AI prohlížeč. Po bouřlivých diskusích na redditu ujistil, že v nastavení Firefoxu bude existovat volba pro zakázání všech AI funkcí.

    Ladislav Hagara | Komentářů: 1
    Kdo vám letos nadělí dárek?
     (33%)
     (2%)
     (11%)
     (2%)
     (1%)
     (2%)
     (15%)
     (19%)
     (14%)
    Celkem 85 hlasů
     Komentářů: 18, poslední včera 15:30
    Rozcestník

    Dotaz: Spojení tabulek na základě částečné shody klíče

    16.4.2011 02:50 konstabl
    Spojení tabulek na základě částečné shody klíče
    Přečteno: 436×
    Ahoj. Mám v MySQL 2 tabulky, kvůli přehlednosti uvedu jen jednoduchý příklad:
    lide
    
    jmeno | vek | povolani
    -----------------------
    franta| 55  | architekt
    
    
    
    povolani
    
    nazev | popis
    -------------
    ar%kt | nejaky text
    
    
    Teď bych potřeboval ty 2 tabulky spojit pomocí lide.povolani = povolani.nazev, ovšem v tomto případě není úplná shoda textu. Jak to udělat aby mi to spojovalo i s takovými výrazy?

    Řešení dotazu:


    Odpovědi

    okbob avatar 16.4.2011 07:36 okbob | skóre: 30 | blog: systemakuv_blog | Benešov
    Rozbalit Rozbalit vše Re: Spojení tabulek na základě částečné shody klíče
    a

    SELECT * FROM lide JOIN povolani ON nazev LIKE lide.povolani

    nefunguje?

    v SQL muzete spojovat jak chcete - v tom je jeho sila i potencialni nebezpecnost
    16.4.2011 11:39 konstabl
    Rozbalit Rozbalit vše Re: Spojení tabulek na základě částečné shody klíče
    Toto bohužel nefunguje.
    16.4.2011 11:41 konstabl
    Rozbalit Rozbalit vše Re: Spojení tabulek na základě částečné shody klíče
    No vlastně to funguje, stačilo prohodit výrazy na stranách LIKE. Díky.
    16.4.2011 11:48 Filip Jirsák | skóre: 67 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Spojení tabulek na základě částečné shody klíče
    Zkusil jsem teď v H2 obě varianty joinu, a obě dávají očekávaný výsledek. Takže by to muselo být nějaké specifikum MySQL. Co znamená „nefunguje“? Hlásí vám to nějakou chybu, vrací jiné záznamy?
    CREATE TABLE lide (
      jmeno VARCHAR,
      vek TINYINT,
      povolani VARCHAR
    );
    
    CREATE TABLE povolani (
      nazev VARCHAR,
      popis VARCHAR
    );
    
    INSERT INTO lide (jmeno, vek, povolani) VALUES ('Franta', 55, 'architekt');
    INSERT INTO povolani (nazev, popis) VALUES ('ar%kt', 'nejaky text');
    
    SELECT * FROM lide JOIN povolani ON lide.povolani LIKE povolani.nazev;
    SELECT * FROM lide, povolani WHERE lide.povolani LIKE povolani.nazev;
    JMENO  	VEK  	POVOLANI  	NAZEV  	POPIS  
    Franta	55	architekt	ar%kt	nejaky text
    
    16.4.2011 15:23 konstabl
    Rozbalit Rozbalit vše Re: Spojení tabulek na základě částečné shody klíče
    Toto funguje:
    SELECT * FROM lide JOIN povolani ON lide.povolani LIKE povolani.nazev;
    
    toto nefungovalo:
    SELECT * FROM lide JOIN povolani ON povolani.nazev LIKE lide.povolani;
    
    Ale je to celkem logické chování.
    Bilbo avatar 16.4.2011 14:07 Bilbo | skóre: 29
    Rozbalit Rozbalit vše Re: Spojení tabulek na základě částečné shody klíče
    Otázkou je, jestli by to nešlo řešit jinak - při spojování přes LIKE nelze použít index a ve chvíli kdy v tabulkách bude více záznamů, tak to bude pomalé (v zásadě MySQL musí pro každý řádek v tabulce povolání projít celou tabulku lide, tedy pokud je v jedné tabulce M a v druhé N záznamů, tak to musí projít M x N záznamů a ve chvíli kdy tam budou tisíce nebo i více záznamů, tak se začne asi projevovat jistá pomalost)

    Na druhou stranu, pokud bude select dělán tak, že z povolání se bude vybírat max. jeden nebo dva řádky a pak spojovat, tak se sice musí procházet párkrát celá tabulka lidé, ale nebude to rychlostně až taková katastrofa, pokud nebude tabulka s lidmi příliš velká.
    Big brother is not watching you anymore. Big Brother is telling you how to live...
    okbob avatar 16.4.2011 16:06 okbob | skóre: 30 | blog: systemakuv_blog | Benešov
    Rozbalit Rozbalit vše Re: Spojení tabulek na základě částečné shody klíče
    Já předpokládám, že se jedná o jednorázovou úlohu - LIKE v JOINu znamená vždy kartézský součin s filtrem - jinými slovy - nested loop. Není to nic, co bych doporučoval používat opakovaně - a pokud to tazatel potřebuje, tak někde udělal chybu - on nebo jeho analytik.
    Bilbo avatar 16.4.2011 16:29 Bilbo | skóre: 29
    Rozbalit Rozbalit vše Re: Spojení tabulek na základě částečné shody klíče
    Vzhledem k tomu, že ty parametry pro like jsou v tabulkách, tak to na jednorázovku moc nevypadá.

    Ale pokud ve WHERE je kromě like i jiná podmínka, co z jedné (nebo z obou) z těch tabulek vybere jen několik málo řádků (a ten výběr bude přes nějaký sloupec pro který lze použít index), tak ten kartézský součin nemusí být tak strašný - MySQL by měl nejdřív vyfiltrovat ty zajímavé řádky a až pak půjde s nimi na kartézský součin.
    Big brother is not watching you anymore. Big Brother is telling you how to live...
    21.4.2011 17:30 l0gik | skóre: 22
    Rozbalit Rozbalit vše Re: Spojení tabulek na základě částečné shody klíče
    Pokud se ale něco takovýho musí dělat, tak je to na 100% chyba v designu i porušení NF (ta sice není samospasitelná, ale o kvalitě návrhu dosti často dost napoví).

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.