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 12:33 | Nová verze

    Sada nástrojů Distrobox pro spouštění libovolných linuxových distribucí v terminálu pomocí kontejnerů byla vydána ve verzi 1.8.0.

    Ladislav Hagara | Komentářů: 0
    dnes 10:55 | Komunita

    Byly zpracovány a zveřejněny videozáznamy z konference LinuxDays 2024. Přistupovat k nim lze přímo z programu, kde jsou také odkazy na prezentace, nebo z YouTube.

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

    Byla vydána nová verze 1.4 svobodného multiplatformního vektorového grafického editoru Inkscape. Podrobný přehled novinek i s náhledy a animovanými gify v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 21:55 | Nová verze

    Softwarový KVM Input Leap (dříve Barrier) byl vydán ve verzi 3.0.0 (a následně pár opravných). Přidává podporu Waylandu a Qt6. Jde o první vydání od přesunu z projektu Barrier v roce 2021. Barrier vznikl jako fork Synergy, jehož verze 2 byla částečně proprietární a její bezplatná open-source verze měla umělá omezení.

    Fluttershy, yay! | Komentářů: 0
    včera 21:00 | Nová verze

    Na čem aktuálně pracují vývojáři GNOME a KDE? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE.

    Ladislav Hagara | Komentářů: 7
    12.10. 06:33 | Komunita

    Přímý přenos (YouTube) z konference LinuxDays 2024, jež probíhá tento víkend v Praze v prostorách Fakulty informačních technologií Českého vysokého učení v Praze (FIT ČVUT). Na programu je spousta zajímavých přednášek.

    Ladislav Hagara | Komentářů: 3
    11.10. 07:11 | IT novinky

    Elon Musk na akci We, Robot (YouTube, 𝕏) představil Robotaxi, Robovan a vylepšeného Tesla Bota (Optimus).

    Ladislav Hagara | Komentářů: 68
    11.10. 06:33 | IT novinky

    Internet Archive je offline (𝕏, Bluesky, Mastodon‪). Unikly údaje 31 milionů uživatelů. Probíhal / probíhá na něj DDoS útok.

    Ladislav Hagara | Komentářů: 3
    11.10. 05:22 | Komunita

    Alyssa Rosenzweig se v příspěvku na svém blogu rozepsala o hraní AAA her na Asahi Linuxu. Na YouTube je záznam její včerejší přednášky na XDC 2024 (X.Org Developer's Conference).

    Ladislav Hagara | Komentářů: 35
    11.10. 04:55 | IT novinky

    Vláda schválila Národní polovodičovou strategii: Česká republika má velký potenciál stát se významným hráčem v oblasti výroby čipů, zejména v evropském měřítku. Využít tento potenciál je cílem Národní polovodičové strategie, kterou připravilo Ministerstvo průmyslu a obchodu ve spolupráci s experty, a která navazuje na evropský Akt o čipech.

    Ladislav Hagara | Komentářů: 3
    Rozcestník

    Dotaz: Pomoc s query

    12.8.2010 13:30 eth4rendil | skóre: 13
    Pomoc s query
    Přečteno: 287×
    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.