abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 18:33 | Nová verze

    Byla vydána (𝕏) nová verze 24.7 open source firewallové a routovací platformy OPNsense (Wikipedie). Jedná se o fork pfSense postavený na FreeBSD. Kódový název OPNsense 24.7 je Thriving Tiger. Přehled novinek v příspěvku na fóru.

    Ladislav Hagara | Komentářů: 0
    včera 05:11 | Bezpečnostní upozornění

    Binarly REsearch upozorňuje na bezpečnostní problém PKFail (YouTube) v ekosystému UEFI. Stovky modelů zařízení používají pro Secure Boot testovací Platform Key vygenerovaný American Megatrends International (AMI) a jeho privátní část byla při úniku dat prozrazena. Do milionů zařízení (seznam v pdf) po celém světě tak útočníci mohou do Secure Bootu vložit podepsaný malware. Otestovat firmware si lze na stránce pk.fail. Ukázka PoC na Linuxu na Windows na YouTube.

    Ladislav Hagara | Komentářů: 11
    včera 02:22 | Nová verze

    Mobilní operační systém /e/OS (Wikipedie) založený na Androidu / LineageOS, ale bez aplikací a služeb od Googlu, byl vydán ve verzi 2.2 (Mastodon, 𝕏). Přehled novinek na GitLabu. Vypíchnuta je rodičovská kontrola.

    Ladislav Hagara | Komentářů: 2
    včera 01:22 | IT novinky

    Společnost OpenAI představila vyhledávač SearchGPT propojující OpenAI modely umělé inteligence a informace z webů v reálném čase. Zatím jako prototyp pro vybrané uživatele. Zapsat se lze do pořadníku čekatelů.

    Ladislav Hagara | Komentářů: 0
    včera 00:11 | Nová verze

    Distribuce Linux Mint 22 „Wilma“ byla vydána. Je založená na Ubuntu 24.04 LTS, ale s desktopovým prostředím Cinnamon (aktuálně verze 6.2), příp. MATE nebo Xfce, balíkem aplikací XApp, integrací balíčků Flatpak a dalšími změnami. Více v přehledu novinekpoznámkách k vydání.

    Fluttershy, yay! | Komentářů: 2
    25.7. 17:44 | Zajímavý článek Ladislav Hagara | Komentářů: 2
    25.7. 17:22 | Nová verze

    Byla vydána nová verze 14 integrovaného vývojového prostředí (IDE) Qt Creator. Podrobný přehled novinek v cgitu. Vypíchnout lze podporu rozšíření v Lua.

    Ladislav Hagara | Komentářů: 0
    25.7. 17:11 | Nová verze

    Byla vydána verze 1.80.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 0
    25.7. 14:11 | IT novinky

    Apple oznámil, že v beta verzi spustil své Apple Maps na webu. Podporován je také webový prohlížeč Chrome. Ne však na Linuxu.

    Ladislav Hagara | Komentářů: 23
    25.7. 13:11 | IT novinky

    Portál Stack Overflow po roce opět vyzpovídal své uživatele, jedná se především o vývojáře softwaru, a zveřejnil detailní výsledky průzkumu. Průzkumu se letos zúčastnilo více než 65 tisíc vývojářů. Z Česka jich bylo 710. Ze Slovenska 246.

    Ladislav Hagara | Komentářů: 0
    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: 390×
    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: 68 | 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.