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 15:44 | Komunita

Nadace The Document Foundation (TDF) zastřešující vývoj svobodného kancelářského balíku LibreOffice dnes slaví 6 let od svého oficiálního vzniku. Nadace byla představena 28. září 2010. Formálně ale byla založena až 17. února 2012. Poslední lednový den byl vydán LibreOffice 6.0. Dle zveřejněných statistik byl za dva týdny stažen již cca milionkrát.

Ladislav Hagara | Komentářů: 1
včera 04:44 | Bezpečnostní upozornění

CSIRT.CZ upozorňuje, že byla vydána nová verze 1.2.3 svobodného routovacího démona Quagga (Wikipedie) přinášející několik bezpečnostních záplat. Při nejhorší variantě může dojít až k ovládnutí běžícího procesu, mezi dalšími možnostmi je únik informací z běžícího procesu nebo odepření služby DoS. Konkrétní zranitelnosti mají následující ID CVE-2018-5378, CVE-2018-5379, CVE-2018-5380 a CVE-2018-5381.

Ladislav Hagara | Komentářů: 0
včera 00:22 | Pozvánky

V sobota 7. dubna proběhne v Brně na FIT VUT nekomerční konference Security Session '18 věnovaná novinkám a aktuálním problémům v oblasti bezpečnosti mobilních a informačních technologií. Organizátoři vyhlásili CFP. Návrhy přednášek a workshopů lze zaslat do 4. března. Spuštěna byla registrace.

Ladislav Hagara | Komentářů: 0
16.2. 23:55 | Nová verze

Byla vydána verze 1.10 programovacího jazyka Go (Wikipedie). Přehled novinek v poznámkách k vydání. Zdůraznit lze vylepšené cachování buildů.

Ladislav Hagara | Komentářů: 1
15.2. 22:55 | Komunita

V sobotu 21. dubna proběhne v Bratislavě na Fakultě informatiky a informačních technologií STU konference Bratislava OpenCamp 2018. Organizátoři vyhlásili CFP. Návrhy přednášek a workshopů lze zaslat do 10. března. Spuštěna byla registrace.

Ladislav Hagara | Komentářů: 0
15.2. 21:22 | Nová verze

Byla vydána verze 1.24 programovacího jazyka Rust (Wikipedie). Z novinek vývojáři zdůrazňují nový nástroj rustfmt pro reformátování zdrojových kódů dle požadovaného programovacího stylu a inkrementální překlad. Více v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust By Example.

Ladislav Hagara | Komentářů: 6
15.2. 13:00 | Komunita

Desktopovému týmu Ubuntu by se hodilo více informací o desktopech uživatelů Ubuntu. V diskusním listu ubuntu-devel byl k diskusi předložen návrh řešení a seznam odesílaných informací. Ve výchozím stavu by mělo být odesílaní informací povoleno. Uživatel by měl mít možnost odesílaní kdykoli jednoduše zakázat [reddit].

Ladislav Hagara | Komentářů: 21
15.2. 05:55 | Komunita

V úterý 13. února vypršela platnost posledního patentu US 7,334,248 souvisejícího s MPEG-2 [Hacker News].

Ladislav Hagara | Komentářů: 23
15.2. 04:44 | Komunita

Organizace Electronic Frontier Foundation (EFF) na svém blogu oznámila, že otevřená certifikační autorita Let's Encrypt dosáhla dalšího milníku. Počet platných certifikátů překročil 50 milionů, viz statistiky. Cekově bylo vydáno již přes 217 milionů certifikátů.

Ladislav Hagara | Komentářů: 0
15.2. 00:22 | Pozvánky

Konference SUSE Expert Days 2018 proběhnou mimo jiné také 1. března v Bratislavě a 15. března v Praze.

Ladislav Hagara | Komentářů: 0
Který webový vyhledávač používáte nejčastěji?
 (3%)
 (27%)
 (62%)
 (2%)
 (3%)
 (1%)
 (1%)
 (1%)
Celkem 339 hlasů
 Komentářů: 34, poslední 14.2. 18:44
    Rozcestník

    Dotaz: SQL dotaz - 2 tabulky

    20.3.2013 21:37 Petr
    SQL dotaz - 2 tabulky
    Přečteno: 976×
    potřebuji poradit, lze nějak vytvořit takový SQL dotaz? Mám MySQL tabulky TAB1(Rec Long primary key, Typ int) a TAB2(Rec Long, Krok varchar(5), Datum date) a potřebuji vypsat Rec z TAB1, kde Typ = např. 1 a v TAB2 je s tímto Rec Krok 'KrokA' a zároveň není žádný Krok 'KrokB' s datem větším než u 'KrokA'. Snad je to srozumitelné. Děkuji za pomoc.

    Odpovědi

    20.3.2013 22:41 kuka
    Rozbalit Rozbalit vše Re: SQL dotaz - 2 tabulky
    Spojeni TAB1 s TAB2 s podminkou na KrokA by melo byt trivialni, nasledne ... and not exists (dotaz na KrokB podle kriterii) a podle moznosti duplicity KrokA pak pripadne jeste distinct.
    20.3.2013 23:32 Petr
    Rozbalit Rozbalit vše Re: SQL dotaz - 2 tabulky
    ano, s podmínkou jen na 'KrokA' bych udělal SELECT DISTINCT TAB1.Rec FROM TAB1,TAB2 WHERE TAB1.Rec=TAB2.Rec AND Krok = 'KrokA'; Ale jak tam dodat podmínku na nepřitomnost 'KrokB' a ještě jen s datem větším než u toho nalezeného 'KrokA' (A to ještě teoreticky by pro jeden Rec mohlo záznamů kde Krok = 'KrokA' být i více a v tom případě by mě zajímal ten poslední (s nejvyšším datem) a testovat nepřítomnost 'KrokB' po tomto datu), to nevím ...
    21.3.2013 08:26 j
    Rozbalit Rozbalit vše Re: SQL dotaz - 2 tabulky
    na prasaka (nezarucuju syntax):
    
    select * (
    
    select * from tab1
     join (select rec, max(datum) from tab2 where krok = "kroka") as s1
        on tab1.rec = s2.rec
     join (select rec, max(datum) from tab2 where krok = "krokb") as s2
        on tab1.rec = s2.rec
    )
    
    where s1.datum > s2.datum
    
    
    21.3.2013 08:30 j
    Rozbalit Rozbalit vše Re: SQL dotaz - 2 tabulky
    a jasne, uz tam vidim min jeden bug ... prvni join ma byt na s1 samo ...
    21.3.2013 09:18 kuka
    Rozbalit Rozbalit vše Re: SQL dotaz - 2 tabulky
    No prida se tam and not exists (select vybirajici KrokB s vyssim datumem). Jestli chces maximalni datum, tak nakonec neudelas distinct, ale group by. Pokud tyto konstrukce neznas (exists, group by), tak si je nekde dohledej, to jsou azklady SQL, bez kterych se daleko nedostanes. Vysledny dotaz bude de facto ten tvuj slovni pozadavek zapsany "anglicky".
    21.3.2013 14:34 Petr
    Rozbalit Rozbalit vše Re: SQL dotaz - 2 tabulky
    Základy SQL znám, ale v tomto případě prostě nevím. Mohl byste mi prosím napsat celý SQL dotaz?
    21.3.2013 15:50 kuka
    Rozbalit Rozbalit vše Re: SQL dotaz - 2 tabulky
    Tak treba
    select t1.rec, max(krok_a.datum)
    from t1, t2 krok_a
    where t1.rec = krok_a.rec
      and krok_a.krok = 'KrokA'
      and not exists( select 0 from t2 krok_b
                        where krok_b.rec = t1.rec
                          and krok_b.krok = 'KrokB'
                          and krok_b.datum > krok_a.datum)
    group by t1.rec
    
    konkretne toto lze udelat jednoduchym group by jen nad tabulkou t2, coz doporucuju jako cviceni.
    21.3.2013 08:12 Tomáš
    Rozbalit Rozbalit vše Re: SQL dotaz - 2 tabulky

    Asi tak nějak (čistě syntaktický přepis Vašeho zadání):

    select t1.Rec
    from TAB1 as t1
    join TAB2 as t2 
      on t1.Rec=t2.Rec and t.Krok='KrokA' and t1.Typ=1
    left join ( 
      select Rec,min(Datum) as dt
      from TAB2
      where Krok='KrokB'
      group by Rec
    ) as t3
     on t2.Rec=t3.Rec and t2.Datum < t3.dt 
    where t3.Rec is null  
    

    Kdyby jste uvedl co je v TAB2 (primárním) klíčem, tak to možná šlo ještě jednodušeji ( jedna agregace plus jeden join ).

    21.3.2013 10:35 Petr
    Rozbalit Rozbalit vše Re: SQL dotaz - 2 tabulky
    Děkuji, tohle vypadá nadějně, ale potřebuji z TAB2 najít poslední (s nejvyšším datem) záznam, kde Krok = 'KrokA' a pak už po něm není žádný záznam 'KrokB'
    21.3.2013 21:19 Tomáš
    Rozbalit Rozbalit vše Re: SQL dotaz - 2 tabulky

    Zase jen syntaktický přepis (bez jakékoliv znalosti skutečného problému)

    select
      Rec
      ,max(case when Krok='KrokA' then Date else null end ) -- poslední datum pro KrokA
    from TAB2
    group by Rec
    having  
      max( case when Krok='KrokA' then Date else null end )  -- nejvyssi datum pro KrokA ( = poslední)
      > -- je větší než
      max( case when Krok='KrokB' then Date else null end )  -- nejvyšší datum pro KrokB
    
    21.3.2013 21:33 Tomáš
    Rozbalit Rozbalit vše Re: SQL dotaz - 2 tabulky

    Ještě jsem zapoměl na dva okrajové případy, kdy jeden z kroků není k dispozici

    select
      Rec
      ,max(case when Krok='KrokA' then Date else null end ) -- poslední datum pro KrokA
    from TAB2
    group by Rec
    having
      max( case when Krok='KrokA' then Date else null end ) is not null -- existuje krokA
     and -- a zároveň
      (
         max( case when Krok='KrokA' then Date else null end )  -- nejvyssi datum pro KrokA ( = poslední)
         > -- je větší než
         max( case when Krok='KrokB' then Date else null end )  -- nejvyšší datum pro KrokB
      or -- nebo se krokB nedohledá
         max( case when Krok='KrokB' then Date else null end ) is NULL 
     
      )
    

    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.