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í
×
    dnes 11:55 | Upozornění

    V neděli 11. října proběhne rotace klíče kořenové zóny. Podruhé v historii. Ondřej Filip na blogu CZ.NIC: "Pokud je pro Vás DNS protokol spíše výzva, ale přesto spravujete nějakou síť či DNS resolver, zkuste si jednoduchý test, který připravila firma Cloudflare na této adrese. Obzvláště zbystřit byste měli, pokud uvidíte nějaká červená políčka."

    Ladislav Hagara | Komentářů: 4
    dnes 09:55 | IT novinky

    Vláda Spojených států se rozhodla vyřadit americkou softwarovou společnost Microsoft a několik dalších velkých technologických podniků z programu, který umožňuje kvalifikovaným zahraničním pracovníkům získat povolení k trvalému pobytu. Oznámila to včera administrativa amerického prezidenta Donalda Trumpa. Opatření zdůvodnila rozsáhlým zneužíváním programu, který je dlouhodobě terčem kritiky ze strany Trumpových příznivců, neboť prý znevýhodňuje americké pracovníky.

    Ladislav Hagara | Komentářů: 11
    dnes 09:44 | IT novinky

    Datové centrum největší ruské technologické společnosti Jandex v Rjazaňské oblasti se stalo cílem dronového útoku a zastavilo provoz. Jandexu se někdy přezdívá „ruský Google“. Provozuje nejoblíbenější internetový vyhledávač v Rusku nebo aplikace pro objednávky jídla a taxi. Využívají jej desítky milionů lidí v rusky mluvících zemích.

    Ladislav Hagara | Komentářů: 10
    dnes 09:33 | Nová verze

    Francouzská společnost Mistral AI představila Mistral Large 4 (interně přezdívaný 'le Chonk', volně přeloženo 'pořádný macek'), 'open-weight multimodální hybridní instruct-and-reasoning model s architekturou granulárního MoE, nativně podporující více jak 160 jazyků'. Model má přes jeden bilión parametrů, z nichž při práci využívá 49 miliard, kontextové okno o délce milion tokenů a obrazový enkodér o 1,6 miliardách parametrů.

    … více »
    ❗Červivý Hřib krade❗ | Komentářů: 0
    dnes 03:22 | Nová verze

    Svobodný multiplatformní herní engine Bevy napsaný v Rustu byl vydán ve verzi 0.20. Díky 227 přispěvatelům.

    Ladislav Hagara | Komentářů: 0
    dnes 03:11 | Komunita

    Simon Long oznámil Raspberry Pi Desktop pro PC a Mac s Intelem postavený na aktualizovaném Debianu 13 Trixie. S klientem Raspberry Pi Connect pro vzdálenou správu. Ke stažení je vedle Raspberry Pi OS pro Raspberry Pi.

    Ladislav Hagara | Komentářů: 0
    včera 21:33 | Zajímavý projekt

    ESP32-C3 adblock přemění lacinou vývojovou desku ESP32‑C3 na samostatný DNS blokovač nejenom reklamních domén, minimalistickou alternativu k populárnímu Pi-hole. ESP32-C3 adblock místo objemných názvů domén ukládá jejich 40-bitové FNV-1a hashe do flash paměti, které pak binárně prohledává, kontrola jedné domény trvá přibližně 10 milisekund. Blocklist pojme až 537 tisíc domén a lze jej spravovat přes webové rozhraní. Projekt zatím

    … více »
    ❗Červivý Hřib krade❗ | Komentářů: 0
    včera 21:00 | Zajímavý software

    ArtCraft je sada open source aplikací pro práci s obrázky a videi "inspirovaných" aplikacemi od Adobe. Napsaných v Rustu. Pro MacOS, Windows i Linux. Běží také ve webovém prohlížeči. Aktuálně se jedná o 7 aplikací: PhotoCraft (Photoshop), VectorCraft (Illustrator), FilmCraft (Premiere Pro), LightCraft (Lightroom), PdfCraft (Acrobat), EffectCraft (After Effects) a DesignCraft (InDesign). Zdrojové kódy jsou k dispozici na GitHubu.

    Ladislav Hagara | Komentářů: 8
    včera 16:33 | Zajímavý software

    Strands Decider 2B je malý open-source model s 2 miliardami parametrů, určený k rychlé klasifikaci vstupů a rozhodování mezi možnostmi, generující odpovědi ve stylu modelu Jev. Strands dosáhl přibližně 72% shody s Jevem na veřejné testovací sadě JevBench (tento benchmark pochopitleně nepředstavuje přímé srovnání s modelem Jev). Zdrojové kódy jsou k dispozici na GitHubu pod licencí Apache-2.0, váhy modelu na Hugging Face.

    ❗Červivý Hřib krade❗ | Komentářů: 4
    včera 16:22 | Upozornění

    Ve věku 90 let zemřela americká softwarová inženýrka Margaret Hamiltonová, která vedla tým, jenž vyvíjel letový software pro program Apollo amerického Národního úřadu pro letectví a vesmír (NASA).

    Ladislav Hagara | Komentářů: 10
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (29%)
     (8%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2818 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník

    Dotaz: Mysql dotaz

    25.9.2012 15:23 Ex
    Mysql dotaz
    Přečteno: 629×
    Ahoj,

    Chtel bych poprosit o radu se sestavenim sql dotazu.

    Zjednodusene rekneme ze jsou dve tabulky:

    users (se sloupcem id)

    items (se sloupcem user (cizi klic do users) a item)

    Potrebuji dotaz, najit usera ktery ma v tabulce items radky s item 1 a zaroven 5.

    Diky moc za pomoc

    Odpovědi

    25.9.2012 15:44 kuka
    Rozbalit Rozbalit vše Re: Mysql dotaz
    Napriklad muzes pouzit exists.
    25.9.2012 16:08 Dejv | skóre: 37 | blog: Jak ten blog nazvat ... ? | Ostrava
    Rozbalit Rozbalit vše Re: Mysql dotaz
    Vykonove asi nic moc, ale fungovat by mohlo (pokud jsem pozadavek spravne pochopil)
    select ...
    from users u
       inner join items i1 on i1.user=u.id and i.item=1
       inner join items i5 on i1.user=u.id and i.item=5
    
    Pevně věřím, že zkušenější uživatelé mě s mými nápady usměrní a pošlou tam, kam tyto nápady patří...
    Tarmaq avatar 25.9.2012 16:14 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: Mysql dotaz
    hh koukam ze jsi byl rychlejsi, navic to mame skoro stejne :] akorat mas spatne aliasy v tom porovnavani na item.. ale to se stane no ;]
    Don't panic!
    26.9.2012 07:40 Dejv | skóre: 37 | blog: Jak ten blog nazvat ... ? | Ostrava
    Rozbalit Rozbalit vše Re: Mysql dotaz
    Jo, mam :-) Samozrejme tam ma byt i1 a i5, tak jak to mas ty :-)
    Pevně věřím, že zkušenější uživatelé mě s mými nápady usměrní a pošlou tam, kam tyto nápady patří...
    Tarmaq avatar 25.9.2012 16:12 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: Mysql dotaz
    SELECT DISTINCT u.id
    FROM users u
    INNER JOIN items i1 ON i1.user = u.id AND i1.item = 1
    INNER JOIN items i5 ON i5.user = u.id AND i5.item = 5
    
    Don't panic!
    25.9.2012 17:24 kuka
    Rozbalit Rozbalit vše Re: Mysql dotaz
    Kazdy distinct je podezrely a tento obzvlast. Bud tam neni potreba (je zaruceno, ze kazdy item je pro uzivatele v items nejvyse jednou), nebo tam potreba je, a pak by se melo misto nej pouzit exists.
    25.9.2012 16:26 Ex
    Rozbalit Rozbalit vše Re: Mysql dotaz
    Diky za tento napad, bez takoveho nasobneho spojovani to mozne neni? Protoze 2 hodnoty item byl priklad, potreboval bych ji i vice, a pak mi to uz neprijde jako vhodne reseni.
    25.9.2012 17:19 kuka
    Rozbalit Rozbalit vše Re: Mysql dotaz
    Mozne to je i bez "takoveho nasobneho spojovani". Treba kdybys napsal, co potrebujes, tak by ti nekdo poradil "vhodne" reseni. Toto se ti nelibi proc - kvuli vykonu, kvuli tomu, ze nevis, kolik hodnot bude, nebo treba jen esteticky?
    25.9.2012 18:57 Ex
    Rozbalit Rozbalit vše Re: Mysql dotaz
    Ano jak rikas, vykonove, myslim si ze pri vice polozkach by to nemuselo byt uplne ono.
    25.9.2012 19:27 kuka
    Rozbalit Rozbalit vše Re: Mysql dotaz
    No a mas tuto domenku necim podlozenou? Pokud budes chtit vsechny uzivatele s danou vlastnosti, bude pravdepodobne nejvykonnejsi group by dotaz pouze pres tabulku items. Pokud budes chtit jen pro jednoho nebo nekolik uzivatelu overit vlastnost, bude temer jiste nejefektivnejsi opakovane spojeni users s items (primo nebo pres exists), jak zde bylo navrhovano (pochopitelne za predpokladu, ze tam bude vhodny index). Samozrejme zalezi i na poctech zaznamu, pro radove desitky az stovky nebudou nejspis zadne rozdily vubec meritelne. V nekterych pripadech muze byt nejlepsi proceduralni zpracovani mimo databazi, pokud prichazi v uvahu.
    25.9.2012 17:33 Kit
    Rozbalit Rozbalit vše Re: Mysql dotaz
    Jde to i pro vícenásobné spojování a nemusí to být pomalé. Pokud bys to chtěl bez toho, musel bys opustit model EAV a navrhnout databázi pořádně.

    Další možností je použití hstore v PostgreSQL.
    26.9.2012 10:47 kaaja | skóre: 24 | blog: Sem tam něco | Podbořany, Praha
    Rozbalit Rozbalit vše Re: Mysql dotaz
    Protože nemám mysql, tak nevím jestli to bude fungovat, ale na jiné db určitě bude
    SELECT DISTINCT u.id
    FROM users u
    where (select count(*) from items i where i.item in (..polozky..)  ) = pocet_polozek
    
    26.9.2012 11:44 kuka
    Rozbalit Rozbalit vše Re: Mysql dotaz
    Tak tohle urcite nebude fungovat nikde, napriklad se tam jaksi nevyskytuje zadna podminka na tu tabulku users. Myslenka jako takova je pouzitelna, ovsem spravne realizovana vede na jednoduchy group by dotaz nad items
    select user_id from items 
    where item in (..polozky..)   
    group by user_id 
    having count(*) = pocet_polozek
    
    26.9.2012 15:17 kaaja | skóre: 24 | blog: Sem tam něco | Podbořany, Praha
    Rozbalit Rozbalit vše Re: Mysql dotaz
    Sorry, psal jsem to na sucho a vypadlo mi to

    SELECT DISTINCT u.id
    FROM users u
    where (select count(*) from items i where i.item in (..polozky..) and i.user = u.id  ) = pocet_polozek
    
    26.9.2012 07:51 George O.
    Rozbalit Rozbalit vše Re: Mysql dotaz
    Mnohem jednodussi bude navrhnout db jako clovek, pak ti bude stacit jednoduchy inner join :-)
    26.9.2012 08:51 Kit
    Rozbalit Rozbalit vše Re: Mysql dotaz
    Existuje pár typů aplikací, ve kterých to nejde tak jednoduše. Například obchod s komponentami PC. Každý díl může mít jinou sadu parametrů a předělávat databázi s každým novým typem zboží nemusí být levná záležitost. Výhodnější je navrhnout univerzální strukturu, kterou bude moct obchodník pracovat dle potřeby.
    Josef Kufner avatar 26.9.2012 15:35 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Mysql dotaz
    Na tohle sice slouží EAV, ale je jednodušší naučit aplikaci používat ALTER a různé tabulky pro velmi odlišné typy zboží (pak stačí jeden join podle typu). Sice to není zrovna krásné z pohledu relačních databází, ale ušetříš si tím mnoho dní práce a ladění.

    Kdysi už tu na tohle téma pár diskusí bylo a tohle jsem tam popisoval podrobněji.
    Hello world ! Segmentation fault (core dumped)
    26.9.2012 09:55 kuka
    Rozbalit Rozbalit vše Re: Mysql dotaz
    Zda se, ze mas kvalitni kristalovou kouli. Jak tedy bude vypadat tazatelova databaze, kdyz ji navrnes ty pro svuj "jednoduchy inner join"?

    26.9.2012 10:56 Kit
    Rozbalit Rozbalit vše Re: Mysql dotaz
    Každá vlastnost bude mít vlastní sloupec v nějaké tabulce.
    26.9.2012 11:25 kuka
    Rozbalit Rozbalit vše Re: Mysql dotaz
    No tak kdybych se pridrzel toho, co nam tazatel sdelil (users, items), tak items by mohly byt klidne treba fasovane veci. Bude velice prakticke, az nejakemu uzivateli koupi novou lampicku, pridavat sloupec to tabulky nebo lepe do vice tabulek. Proste nikdo netusi, k cemu to ma byt, takze odpoved "navrhni si databazi lepe" je nesmyslna. Navic zmena struktury databaze nebyva vhodnym postupem ve vetsine scenaru, napriklad pokud nekdo dostane za ukol udelat report nad existujicimi daty.
    Josef Kufner avatar 26.9.2012 15:38 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Mysql dotaz
    select u.*
    from users as u
    left join items as i on i.user = u.id
    where i.id IN (1, 5)
    group by u.id
    having count(i.id) = 2
    
    Hello world ! Segmentation fault (core dumped)
    26.9.2012 16:16 Kit
    Rozbalit Rozbalit vše Re: Mysql dotaz
    Hmm. A co když bude mít 2× item1 a ani jednou item5?
    26.9.2012 16:47 kuka
    Rozbalit Rozbalit vše Re: Mysql dotaz
    Bud musi byt vecne zarucena unikatnost nebo

    ...count(distinct i.id)...
    Josef Kufner avatar 26.9.2012 16:50 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Mysql dotaz
    Na sloupci item.id nejspíš bude primární klíč, takže duplicita nehrozí.
    Hello world ! Segmentation fault (core dumped)
    26.9.2012 16:58 Kit
    Rozbalit Rozbalit vše Re: Mysql dotaz
    V tom případě se mi víc líbí řešení od Tarmaq.

    Tazatel psal, že se počet těch podmínek bude měnit. To znamená, že ten dotaz bude pokaždé vypadat hodně jinak. V původním řešení se jen budou přidávat další řádky.

    Kdyby v MySQL bylo možné i scheme-less řešení (např. hstore), tato debata by byla už dávno u konce.
    Josef Kufner avatar 26.9.2012 17:08 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Mysql dotaz
    Otázkou je, co bude rychlejší a jak ty dotazy i data nakonec budou vypadat.

    Já bych se ale na EAV a podobné zrůdnosti vykašlal. Pokud jde o filtrování podla tagů nebo něčeho takového, tak ten group by je mnohem rychlejší (pokud si to pamatuju dobře; kdysi jsem právě přepisoval hnusný selecty z jednoho tvaru do druhého, jen už nevím, jak to dopadlo).
    Hello world ! Segmentation fault (core dumped)
    26.9.2012 17:17 Kit
    Rozbalit Rozbalit vše Re: Mysql dotaz
    EAV je dobře použitelné, pokud je hodně atributů a málo záznamů. Předpokládám, že přesně tohle je případ tazatele. Pokud by tomu bylo jinak, EAV by asi nepoužil.

    Založit nové vlákno • Nahoru

    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.