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í
×
    dnes 18:11 | Nová verze

    Yocto Project byl vydán ve verzi 5.0. Její kódové jméno je Scarthgap. Yocto Project usnadňuje vývoj vestavěných (embedded) linuxových systémů na míru konkrétním zařízením. Cílem projektu je nabídnou vývojářům vše potřebné. Jedná se o projekt Linux Foundation.

    Ladislav Hagara | Komentářů: 0
    dnes 17:56 | Nová verze

    Operační systém 9front, fork operačního systému Plan 9, byl vydán v nové verzi "do not install" (pdf). Více o 9front v FQA.

    Ladislav Hagara | Komentářů: 0
    dnes 13:11 | Nová verze

    Svobodná webová platforma pro sdílení a přehrávání videí PeerTube (Wikipedie) byla vydána v nové verzi 6.1. Přehled novinek i s náhledy v oficiálním oznámení a na GitHubu. Řešeny jsou také 2 bezpečnostní chyby.

    Ladislav Hagara | Komentářů: 3
    dnes 12:33 | Zajímavý software

    Lennart Poettering na Mastodonu představil utilitu run0. Jedná se o alternativu k příkazu sudo založenou na systemd. Bude součástí systemd verze 256.

    Ladislav Hagara | Komentářů: 12
    včera 23:22 | Nová verze

    Hudební přehrávač Amarok byl vydán v nové major verzi 3.0 postavené na Qt5/KDE Frameworks 5. Předchozí verze 2.9.0 vyšla před 6 lety a byla postavená na Qt4. Portace Amaroku na Qt6/KDE Frameworks 6 by měla začít v následujících měsících.

    Ladislav Hagara | Komentářů: 11
    včera 21:44 | Komunita

    Ubuntu 24.10 bude Oracular Oriole (věštecká žluva).

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

    Byla vydána nová verze 2.45.0 distribuovaného systému správy verzí Git. Přispělo 96 vývojářů, z toho 38 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání. Vypíchnout lze počáteční podporu repozitářů, ve kterých lze používat SHA-1 i SHA-256.

    Ladislav Hagara | Komentářů: 0
    včera 13:33 | IT novinky

    Před 25 lety, ve čtvrtek 29. dubna 1999, byla spuštěna služba "Úschovna".

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

    Byla vydána nová verze 24.04.28 s kódovým názvem Time After Time svobodného multiplatformního video editoru Shotcut (Wikipedie) a nová verze 7.24.0 souvisejícího frameworku MLT Multimedia Framework. Nejnovější Shotcut je vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.

    Ladislav Hagara | Komentářů: 0
    28.4. 16:33 | Nová verze Ladislav Hagara | Komentářů: 0
    KDE Plasma 6
     (75%)
     (8%)
     (2%)
     (15%)
    Celkem 885 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Dotaz: Pomoc s query

    12.8.2010 13:30 eth4rendil | skóre: 13
    Pomoc s query
    Přečteno: 280×
    Dobrý deň,

    Chcel by som Vás požiadať o pomoc s nasledujúcou MySQL query :

    jedna sa o query pre aukciu, ktorá bude zobrazovať názov tovaru, aktuálnu cenu a čas do konca aukcie. data sú v troch tabulkach z tab tovar stačí iba názov tovaru, z app_aukcia všetko, a z app_aukcia_bids potrebujem sum(bid) konkretneho riadku z app_aukcia.

    na mojej query je niečo zle - zobrazuje iba tie aukcie kde už boli neaké bidy, ak nie su tak sa riadok nezobrazí.
    SELECT
    timediff(now(), a.close_time) AS estimate
    , p.nazov_t,
    a.start_price,
    a.start_price+sum(b.bid) AS actprice,
    a.*
    FROM app_aukcia a
    right join tovar p ON
    a.id_tovar=p.id
    JOIN app_aukcia_bids b ON
    b.id_aukcia=a.id
    WHERE a.closed='n' 
    ORDER BY close_time DESC;
    ďakujem pekne

    Řešení dotazu:


    Odpovědi

    12.8.2010 13:51 Dejv | skóre: 37 | blog: Jak ten blog nazvat ... ? | Ostrava
    Rozbalit Rozbalit vše Re: Pomoc s query
    left OUTER join app_aukcia_bids
    nebo mozna right outer, s timhle vzdycky trochu bojuju :-)
    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ří...
    12.8.2010 13:59 eth4rendil | skóre: 13
    Rozbalit Rozbalit vše Re: Pomoc s query
    ďakujem to som už skúšal ale stále vypíše iba ten záznam, ktorý ma neaký ten bid.. keď to dám bez toho joinu na app_aukcia_bids a bez sum(b.bid) tak sa zobrazia všetky záznamy, takže problém bude na 100% vtom joine
    12.8.2010 14:08 eth4rendil | skóre: 13
    Rozbalit Rozbalit vše Re: Pomoc s query
    trochu som to zjednodušil aby to bolo prehladnejšie:
    SELECT
    SUM(b.bid) AS spolu,a.*
    FROM app_aukcia a
    LEFT OUTER JOIN app_aukcia_bids b on
    b.id_aukcia=a.id
    WHERE a.closed='n'
    ORDER BY close_time DESC;
    teraz sa to správa tak isto, teda zobrazuje iba riadky, pri ktorých je v druhej tabulke bid
    Řešení 1× (eth4rendil (tazatel))
    default avatar 12.8.2010 20:59 default | skóre: 22 | Madrid
    Rozbalit Rozbalit vše Re: Pomoc s query
    Příloha:
    Předem se omlouvám za hrubší reakci, ale výchova musí být. :-D

    Hned na úvod musím s politováním konstatovat, že dotaz nikdy fungovat nebude, protože je prostě špatně napsaný.

    Proč?

    Tak zaprvé: klíčové slovo OUTER nemá na vykonávání joinů vliv; je prostě nepovinné. :-)

    Zadruhé: Rozdíl mezi LEFT [ OUTER ] JOIN a RIGHT [ OUTER ] JOIN:
    • LEFT JOIN: to, pro co napravo od klauzule neexistuje odpovídající entita, je nahrazeno NULLy.
    • RIGHT JOIN: to, pro co nalevo od klauzule — tedy řídící množina je ta napravo — neexistuje odpovídající entita, je nahrazeno NULLy.
    • Ještě existuje FULL OUTER JOIN, kde jsou řídícími množinami obě strany. Pak se lze v dokumentaci dočíst o CROSS JOIN, což je kartézský součin. :-)
    • Dále existuje ještě INNER JOIN, což znamená: dej mi to, co je vlevo a zároveň v pravo. Co na libovolné straně přebývá, zahoď.
    Dotaz, který uvádíš, je chybný z principu věci. Chybí ti totiž GROUP BY klauzule, byť MySQL (a potažmo i do určité míry i SyBase ASE) ji odpouští. To ale na věci nic nemění. Uvádět se má. Když ji vynecháš, databáze si groupuje jak chce — to znamená, že ztrácíš kontrolu.

    OK, rozeberme si ten dotaz:
    • Pomíjím a.start_price versus a.*. Hvězdička je jen pro ten nejtvrdší devel.
    • Joiny se vykonávají zleva doprava. V tvém případě řídící tabulkou je tabulka TOVAR, protože RIGHT JOIN. K ní se dohledají aukce. Pak to celé omezíš (JOIN znamená INNER JOIN!) těmi přihozeními.
    Další užitečná informace je, že agregační funkce pracují s hodnotami NULL stejně jako operátory. To znamená, že 1 + NULL je prostě NULL. A i tak SUM() NULLů je NULL. Takže když k NULLu vráceným agregační funkcí přičteš konstantu, výsledek je NULL. NULLový výstup agrgační funkce se tedy musí převést na nějakou hodnotu.

    Tím končím.

    V příloze máš skript (ano, pro Oracle, protože tu nic jiného nemám), který by ti mohl být užitečný. Víc dát nemůžu, protože jsi neposkytnul testovací data.

    P.S.: V diskuzi uvádíš, že ti nefunguje ani dotaz jen nad tabulkami aukcí a přihozeními. Zkontroluj si integritu dat. Tyhle primitivní spojení fungují i v Excelu a Accessu!
    16.8.2010 09:10 eth4rendil | skóre: 13
    Rozbalit Rozbalit vše Re: Pomoc s query
    Ďakujem veľmi pekne,

    presne takéto niečo som potreboval, queryna mi už samozrejme funguje.

    default avatar 16.8.2010 20:56 default | skóre: 22 | Madrid
    Rozbalit Rozbalit vše Re: Pomoc s query
    Jsem rád, že jsem pomohl. :-)

    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.