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 16:44 | Nová verze

    Bylo oznámeno vydání Fedora Linuxu 43. Ve finální verzi vychází šest oficiálních edic: Fedora Workstation a Fedora KDE Plasma Desktop pro desktopové, Fedora Server pro serverové, Fedora IoT pro internet věcí, Fedora Cloud pro cloudové nasazení a Fedora CoreOS pro ty, kteří preferují neměnné systémy. Vedle nich jsou k dispozici také další atomické desktopy, spiny a laby. Podrobný přehled novinek v samostatných článcích na stránkách Fedora Magazinu: Fedora Workstation, Fedora KDE Plasma Desktop, Fedora Silverblue a Fedora Atomic Desktops.

    Ladislav Hagara | Komentářů: 0
    dnes 15:22 | IT novinky

    Elon Musk oznámil (𝕏) spuštění internetové encyklopedie Grokipedia (Wikipedia). Zatím ve verzi 0.1. Verze 1.0 prý bude 10x lepší, ale i ve verzi 0.1 je podle Elona Muska již lepší než Wikipedia.

    Ladislav Hagara | Komentářů: 8
    dnes 05:44 | Komunita

    PSF (Python Software Foundation) po mnoha měsících práce získala grant ve výši 1,5 milionu dolarů od americké vládní NSF (National Science Foundation) v rámci programu "Bezpečnost, ochrana a soukromí open source ekosystémů" na zvýšení bezpečnosti Pythonu a PyPI. PSF ale nesouhlasí s předloženou podmínkou grantu, že během trvání finanční podpory nebude žádným způsobem podporovat diverzitu, rovnost a inkluzi (DEI). PSF má diverzitu přímo ve svém poslání (Mission) a proto grant odmítla.

    Ladislav Hagara | Komentářů: 18
    dnes 04:55 | Nová verze

    Balík nástrojů Rust Coreutils / uutils coreutils, tj. nástrojů z GNU Coreutils napsaných v programovacím jazyce Rust, byl vydán ve verzi 0.3.0. Z 634 testů kompatibility Rust Coreutils s GNU Coreutils bylo úspěšných 532, tj. 83,91 %. V Ubuntu 25.10 se již používá Rust Coreutils místo GNU Coreutils, což může přinášet problémy, viz například nefunkční automatická aktualizace.

    Ladislav Hagara | Komentářů: 0
    včera 21:00 | IT novinky

    Od 3. listopadu 2025 budou muset nová rozšíření Firefoxu specifikovat, zda shromažďují nebo sdílejí osobní údaje. Po všech rozšířeních to bude vyžadováno někdy v první polovině roku 2026. Tyto informace se zobrazí uživateli, když začne instalovat rozšíření, spolu s veškerými oprávněními, která rozšíření požaduje.

    Ladislav Hagara | Komentářů: 0
    včera 17:11 | Humor

    Jste nuceni pracovat s Linuxem? Chybí vám pohodlí, které vám poskytoval Microsoft, když vás špehoval a sledoval všechno, co děláte? Nebojte se. Recall for Linux vám vrátí všechny skvělé funkce Windows Recall, které vám chyběly.

    Ladislav Hagara | Komentářů: 1
    včera 16:11 | Komunita

    Společnost Fre(i)e Software oznámila, že má budget na práci na Debianu pro tablety s cílem jeho vyžívání pro vzdělávací účely. Jako uživatelské prostředí bude použito Lomiri.

    Ladislav Hagara | Komentářů: 1
    26.10. 17:11 | IT novinky

    Proběhla hackerská soutěž Pwn2Own Ireland 2025. Celkově bylo vyplaceno 1 024 750 dolarů za 73 unikátních zranitelností nultého dne (0-day). Vítězný Summoning Team si odnesl 187 500 dolarů. Shrnutí po jednotlivých dnech na blogu Zero Day Initiative (1. den, 2. den a 3. den) a na YouTube.

    Ladislav Hagara | Komentářů: 4
    26.10. 13:33 | Komunita

    Byl publikován říjnový přehled dění a novinek z vývoje Asahi Linuxu, tj. Linuxu pro Apple Silicon. Pracuje se na podpoře M3. Zanedlouho vyjde Fedora Asahi Remix 43. Vývojáře lze podpořit na Open Collective a GitHub Sponsors.

    Ladislav Hagara | Komentářů: 0
    25.10. 15:44 | Zajímavý software

    Iniciativa Open Device Partnership (ODP) nedávno představila projekt Patina. Jedná se o implementaci UEFI firmwaru v Rustu. Vývoj probíhá na GitHubu. Zdrojové kódy jsou k dispozici pod licencí Apache 2.0. Nejnovější verze Patiny je 13.0.0.

    Ladislav Hagara | Komentářů: 0
    Jaké řešení používáte k vývoji / práci?
     (36%)
     (47%)
     (20%)
     (19%)
     (23%)
     (17%)
     (21%)
     (17%)
     (18%)
    Celkem 279 hlasů
     Komentářů: 14, poslední 14.10. 09:04
    Rozcestník

    Dotaz: Mysql dotaz

    25.9.2012 15:23 Ex
    Mysql dotaz
    Přečteno: 322×
    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á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.