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 04:00 | Nová verze

    FreeTube, desktopový klient pro YouTube využívající lokální API, byl vydán ve verzi 0.26.0. Toto velké opravné vydání mj. vrací částečnou podporu živých přenosů nebo přepracovává zobrazování titulků a obecně nastavení videa v přehrávači – FreeTube umožňuje např. přehrávat video s větším zrychlením.

    ʚĭɞ 🍉 | Komentářů: 0
    dnes 03:55 | Humor

    Další vlna kyberútoků zasáhla chladicí zařízení supermarketů v sedmi evropských zemích, Belgii, Lucembursku, Švédsku, Nizozemsku, Irsku, Estonsku a Finsku. Mrazáky se v některých prodejnách opět 'proměnily v trouby' a zahřály až na 50°C, což pochopitelně vedlo ke znehodnocení uskladněných potravin. Útoky navazují na podobný incident ve Francii z první poloviny října letošního roku, pachatel stále není znám.

    👻 | Komentářů: 5
    včera 17:52 | Zajímavý projekt
    WorldTUI je experimentální LLM o 360 milionech parametrů, který napodobuje terminál. Podle stisknutých kláves se snaží předpovídat změny na obrazovce a zvládá tak vyonávat rozličné příkazy, například Vim, tmux i jednoduchou hru Snake. Nejedná se o skutečný příkazový řádek, jeho 'soubory' i příkazy jsou pouze simulované a model může samozřejmě různě chybovat. WorldTUI vychází z jazykového modelu Qwen2.5-Coder-0.5B, který autor … více »
    👻 | Komentářů: 2
    včera 17:48 | Zajímavý článek
    Josef Bacik navrhuje novou abstrakci cell, která by celý kontejner reprezentovala jako jeden kernelový objekt. Proces by vznikl přímo uvnitř cell a nemohl by ji opustit. Oprávnění ke správě by se odvozovala od držení cellfd. … více »
    vencour | Komentářů: 9
    včera 16:23 | Bezpečnostní upozornění

    Zranitelnost v aktualizačním mechanismu WordPress umožňuje útočníkovi zasáhnout do dočasného instalačního adresáře během aktualizace jádra systému. Před aktualizací veřejně dostupného WordPressu dočasně zablokovat HTTP přístup k wp-content/upgrade/, následně aktualizovat a zkontrolovat logy. Postižené verze: WordPress 4.7 až 7.1.3.

    vencour | Komentářů: 0
    včera 16:11 | Bezpečnostní upozornění

    Alpine Linux zveřejnil podrobnosti o útoku na svůj GitLab a 30. října oznámil obnovení provozu. Útočník se 20.–21. října pokusil zneužít chybu v regulárních výrazech. Exploit způsobil opakované pády workerů a několikrát se dostal do pokročilé fáze. Úspěšné spuštění kódu však nebylo potvrzeno. Fix: Opravený GitLab a současně Ruby 3.3.13, 3.4.12 nebo 4.0.9+, pokud jde o vlastní sestavení či kontejner.

    vencour | Komentářů: 0
    včera 15:44 | Pozvánky

    Konference OpenAlt 2026 proběhne tento víkend 7. a 8. listopadu na FIT VUT v Brně. Jedná se již o 21. ročník této konference, která propojuje otevřené technologie, svobodný software, hardware a lidi, kteří chtějí věci nejen používat, ale také jim rozumět a měnit je k lepšímu. Více o konferenci v příspěvku OpenAlt 2026: technologie, které dávají svobodu na blogu spolku OpenAlt.

    Ladislav Hagara | Komentářů: 0
    včera 15:22 | IT novinky

    Eben Upton oznámil další zdražení jednodeskových počítačů Raspberry Pi. Tentokrát 16 GB varianty Raspberry Pi o 80 dolarů a 16 GB varianty Raspberry Pi Compute Module 5 o 40 dolarů. Cena Raspberry Pi 500+ se nemění.

    Ladislav Hagara | Komentářů: 0
    včera 15:11 | IT novinky

    Francouzské Národní shromáždění přijalo 30. října 2026 poměrem 11 hlasů pro, 10 proti a 14 abstencí pozměňovací návrh I-1358 ke státnímu rozpočtu na rok 2027, který zavádí daň z objemu dat doručovaných uživatelům internetu. Návrh socialistického poslance Laurenta Lhardita stanovuje sazbu 0,055 eura za gigabajt, tedy 55 eur za terabajt. Zatím nejde o platný zákon, ale o dílčí hlasování během prvního čtení rozpočtu. Daň by měli platit

    … více »
    vencour | Komentářů: 10
    1.11. 12:44 | IT novinky

    Nizozemská vláda ve snaze šetřit a zvyšovat efektivitu s využitím umělé inteligence (AI) hodlá zrušit asi 25.000 pracovních míst ve státní správě. Cílem je postupně dosáhnout ročních úspor až 3,5 miliardy eur (85,2 miliardy Kč). Na konci loňského roku ve státní správě pracovalo rekordních 160.000 lidí. „Nemůžeme pokračovat v tom, co jsme dělali dosud,“ uvedl státní tajemník pro efektivní fungování vlády Eric van den Burg. „Proto

    … více »
    Ladislav Hagara | Komentářů: 41
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (20%)
     (30%)
     (9%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2968 hlasů
     Komentářů: 34, poslední 26.10. 08:24
    Rozcestník

    Dotaz: mysql join iba vtedy ak je hodnota jednej row ina ako 0

    6.2.2013 16:17 adrinko | skóre: 22
    mysql join iba vtedy ak je hodnota jednej row ina ako 0
    Přečteno: 845×
    ahojte, mam takyto mysql prikaz
        		SELECT o.user_id, o.date, i.*, k.adresa
        		FROM objednavky_items i
        		JOIN objednavky o ON (i.objednavka_id = o.id)
        		JOIN kontrolovanie k ON (i.item_id = k.id)
        		WHERE o.id = '$order_id' AND o.hash = '$order_hash' AND o.dokoncena = 'A'
    Problem je, ze by som chcel, aby sa JOIN kontrolovanie k ON (i.item_id = k.id) vykonalo a k.adresa naplnila len vtedy, ak i.item_id!=0

    Ako na to? Vdaka!

    Odpovědi

    6.2.2013 16:27 adrinko | skóre: 22
    Rozbalit Rozbalit vše Re: mysql join iba vtedy ak je hodnota jednej row ina ako 0
    zmodifikoval som to takto a zda sa, ze to vracia dobre vysledky
    SELECT o.user_id, o.date, i.*, k.adresa
    FROM objednavky_items i
    INNER JOIN objednavky o ON (i.objednavka_id = o.id)
    LEFT JOIN kontrolovanie k ON (i.item_id = k.id)
    WHERE o.id = '$order_id' AND o.hash = '$order_hash' AND o.dokoncena = 'A'
    je to ale spravne riesenie mojho problemu?
    6.2.2013 21:19 kuka
    Rozbalit Rozbalit vše Re: mysql join iba vtedy ak je hodnota jednej row ina ako 0
    Ne neni, nikde nevidim zadnou podminku na != 0. Ovsem nevylucuju, zes nespravne popsal svuj problem a pak by to treba spravne mohlo byt.
    7.2.2013 12:29 logik
    Rozbalit Rozbalit vše Re: mysql join iba vtedy ak je hodnota jednej row ina ako 0
    adrinko: No protože to left join se chová podobně: on evidentně nemá pro předmět 0 záznam v tabulce kontrolovanie nemá.

    kuko: Pokud pro předmět není odpovídající záznam, měl bys tam použít nikoli 0, ale NULL. Znemožňuješ tak např. použití cizích klíčů, který bys měl definovat, abys zaručil konzistenci databáze.
    7.2.2013 13:11 kuka
    Rozbalit Rozbalit vše Re: mysql join iba vtedy ak je hodnota jednej row ina ako 0
    Ja naprosto netusim, kde existuje nebo neexistuje zaznam a co ma nebo nema byt null. Jedine, co rikam, je, ze left join neni ekvivalentni s podminkou dotazeni adresy jen pro id!=0. Napriklad trivialne pokud kontrolovanie pro id=0 bude existovat, tak se adresa dotahne (nevim z ceho je "evidentni", ze takovy zaznam v tabulce nebude). Podobne ovsem bude adresa prazdna pro id=17, pokud nebude v tabulce kontrolovanie odpovidajici zaznam. Mozna ze chce tazatel ve skutecnosti prirozene vypadajici chovani "tam kde kontrolovanie existuje, pouzij z nej adresu", ale pak neni jasne, proc se na to nezepta rovnou.
    7.2.2013 14:40 logik
    Rozbalit Rozbalit vše Re: mysql join iba vtedy ak je hodnota jednej row ina ako 0
    Bez urážky, když chceš lidem radit, tak holt musíš číst i mezi řádkama....

    Málokdo umí položit otázku zcela přesně: ono to už proto, že položit správnou otázku je většinou to nejsložitější na nalezení odpovědi.
    7.2.2013 15:01 j
    Rozbalit Rozbalit vše Re: mysql join iba vtedy ak je hodnota jednej row ina ako 0
    Predevsim je treba psat dotazy, ktere delaji to co maji, a ne ze prave ted a za techto okolnosti pvraceji spravny vysledek. Left join dela uplne neco jinyho.

    zjednodusene: join ... predpoklada se vazba 1:1, pri neexistenci zaznamu v jedne z obou tabulek nevrati nic left (pripadne right) join ... prepodklada se obecna vazna 1:N (N:1), v pripade neexistence zaznamu v navazovane tabulce obecne vraci null v jejich sloupcich

    Nikde tam nevidim nic o tom, ze by nejakej sloupec mel nebo nemel mit nejakou hodnotu. Pokud tam dava left join a vraci mu to spravny vysledky, tak trebas jen proto, ze aktualne existuje pratave vazba 1:1, jenze kdyz existovat (at uz umyslne nebo chybou) prestane, tak to vrati kraviny.
    7.2.2013 16:21 logik
    Rozbalit Rozbalit vše Re: mysql join iba vtedy ak je hodnota jednej row ina ako 0
    Nelze než zopakovat radu: naučte se číst mezi řádky. Proč asi autor chtěl tam dát výsledky jen pro id<>0? Hádej. Že by proto, že 0 používá pro identifikaci: zde není předmět?? A proto ve skutečnosti jeho dotaz zněl: jak zařídím, aby ve výpisu byly i ty řádky, který nemaj odpovídající řádek v tý druhý tabulce, protože INNER JOIN mi je vyhodí? To s prominutím napadne i průměrně vyspělou opici, pokud má ta opice opravdu snahu tazateli pomoci a ne si honit ego, že tazatel je blbec a neumí SQL.

    Kardinalita pak s tím nemá vůbec co dělat, teda ne tím způsobem kterým píšeš: vazbí se na PK, takže je jasný, že je to vazba (0,N):(0,1), a problémy mu působí právě to, že to není vazba N1, ale N:(0,1). Navíc i kdyby to PK nebyl a byla to vazba M:N, tak z dotazu nijak nevyplývá, že by to bylo špatně. Chtít vypsat všechny kontroly výrobků a navíc nekontrolované výrobky dává dobrý smysl.

    To, co má v návrhu blbě a na co byste ho měli upozornit není to, že tam má left join, ten je naprosto v pořádku, ale to, že používá pro indikaci neexistence záznamu v druhé tabulce. To je jádro problému.
    7.2.2013 16:43 logik
    Rozbalit Rozbalit vše Re: mysql join iba vtedy ak je hodnota jednej row ina ako 0
    Jinak ještě: Join rozhodně NEPŘEDPOKLÁDÁ vazbu 1:1, stejně ani tak Left Join NEPŘEDPOKLÁDÁ vazbu 1:N, všechny JOINY jdou použít na jakoukoli kardinalitu.

    Protipříklad je jednoduchý: jak inner, tak outer join má smysl např. u tabulky zachycující příbuzenství. Přesto je příbuzenství obecně vazba (0,N):(0,M) a tedy nesplňuje žádný z Tvých předpisů (na obou stranách má nulu).

    INNER JOIN a (LEFT|RIGHT) OUTER JOIN se naprosto neliší tím, na jaké kardinality se aplikují, ale tím, jaké výsledky vracejí: zatímco INNER join vrací pouze subjekty s existující vazbou, OUTER join vrací seznam subjektů (nezávisle na tom, zdali mají vazbu) + informace o potenciálních vazbách.
    7.2.2013 15:37 kuka
    Rozbalit Rozbalit vše Re: mysql join iba vtedy ak je hodnota jednej row ina ako 0
    Ja prave neradim, ale pouze odpovidam na otazku. Kdybych chtel radit, tak rada by byla "nauc se SQL a nebudes muset hadat, co dela tvuj triradkovy dotaz".
    7.2.2013 16:28 logik
    Rozbalit Rozbalit vše Re: mysql join iba vtedy ak je hodnota jednej row ina ako 0
    V tom případě jdi prosím odpovídat na otázky někam jinam. Pokud jsi si nevšiml, tady není odpovídárná, tady je PORADNA a tedy zde není cílem tazateli ODPOVĚDĚT a libovat si nad tím, jak jsem chytřejší než on, ale PORADIT mu tak, aby jeho řešení problému bylo správné.

    Vzhledem k tomu, že jak píšeš, tak kdybys chtěl radit, tak budeš na tazatele taktéž sprostý a přitom Tvoje rada mu nijak nepomůže, tak jen prosím, nechoď se radši ani radit. Tedy alespoň do té doby, než se naučíš alespoň základům mezilidské slušnosti, empatie a tolerance a dokážeš přjmout to, že existují také lidé, co se teprv programovat učí.
    7.2.2013 17:37 kuka
    Rozbalit Rozbalit vše Re: mysql join iba vtedy ak je hodnota jednej row ina ako 0
    Aha takze v poradne se neodpovida na dotazy? To se dela v odpovidarne? Dekuji za toto rozsireni obzoru, ale ponecham si svuj nazor na vec. Nevim, co by melo byt "sprosteho" na tom, kdybych nekomu poradil, ze se ma neco naucit - zjistit napr. na googlu co dela left join trva asi tak stejne dlouho jako napsat dotaz zde do poradny. Nemyslim si, ze je smysluplnejsi a pro tazatele prinosnejsi, kdyz mu papouskujes svoji vlastni "definici" left joinu. Pokud jde o zakladni slusnost, nikoho odtud napriklad na rozdil od tebe nevyhazuju a nespekuluju bezduvodne o jeho charakteru, takze si prosim nalej vlastni medicinu a uz mi nic dalsiho nepis. Diky.
    8.2.2013 17:02 logik
    Rozbalit Rozbalit vše Re: mysql join iba vtedy ak je hodnota jednej row ina ako 0
    Ano, v poradně není primárním cílem zodpovědět dotaz, ale pomoci: a to znamená někdy i opravdu dotaz nezodpovědět. Nebo to chceš tvrdit, že pokud by někdo zavolal do psychiatrické poradny, jak se nabíjí pistole, tak je správné dotaz zodpovědět? Zde je situace stejná: tazatel ve skutečnosti měl jiný problém a zodpovězení otázky by mu nejen nepomohlo, ale i by ho pravděpodobně víc zmátlo a přidělalo mu práci.

    Najit na googlu co dělá left join je opravdu záležitost minuty. Ale on se NEPTAL, co dělá leftjoin. Chci todle, jak to udělám? To samostudiem googlu je práce na desítky minut a naprosto vhodné téma na otázku do poradny. A dokonce když našel správné řešení, tak ho dal do diskuse pro ostatní. Takže Tvůj argument i Tvoje kritika tazatele je jaksi dosti mimo.

    Ohledně údajné mojí definice LEFT JOINU, co z toho co jsem o něm psal konkrétně není pravda (navíc to byla jen korekce j., který opravdu o leftjoinu psal blbiny).

    A ohledně slušnosti: psal jsi, že pokud by jsi chtěl radit, tak bys mu poradil, ať se jde naučit SQL, a to poměrně dosti dehonestujícím způsobem. Pokud se Ti to zdá slušné, tak Ok, je to Tvůj názor, ale můj názor je prostě takový, že to je neomalenost. Stejnětak je IMHO dosti arogantní Tvůj postoj, že se nebudeš snažit pochopit, jak tazatel otázku myslel popř. co je jeho skutečný problém a prostě mu odpovíš, ať už mu tvoje odpověď pomůže, nebo uškodí.

    8.2.2013 09:25 j
    Rozbalit Rozbalit vše Re: mysql join iba vtedy ak je hodnota jednej row ina ako 0
    Nekam jinam (trebas doprdele) bys mel jit predevsim ty, protoze radis kraviny. Jestli totiz nekomu neco nepomuze, tak tvoje vesteni z kristalovy koule.

    Pokud se nekdo na neco zepta, tak odpovdam na to, na co se ptal a nevymejslim kraviny s tim, ze by to mohlo byt nejak, protoze tak bych to udelal ja.
    8.2.2013 17:08 logik
    Rozbalit Rozbalit vše Re: mysql join iba vtedy ak je hodnota jednej row ina ako 0
    Co jsem poradil za kravinu? Konkrétně?

    Jinak jak je vidět z reakce tazatele (napsal řešení a už se neozval, tj. řešení mu vyhovuje), tak moje "věštění" funguje. Že by to bylo tím, že to není až tak věštění, ale praxe v programování a pedagogice programování? Auto také lidem, co neznali jeho princip přišlo jako "magické čertovo vozítko"....

    8.2.2013 23:10 adrinko | skóre: 22
    Rozbalit Rozbalit vše Re: mysql join iba vtedy ak je hodnota jednej row ina ako 0
    Zdravím vás priatelia, sorry, bol som mimo pc doteraz. Vidím, že sa tu rozprúdila vcelku slušná debata. Ale naspäť k problému. Ten left join som našiel a zatiaľ mi dáva správne výsledky, ale nebude to to najlepšie riešenie, keďže tam nie je tá podmienka i.item_id!=0. Totižto, ak je i.item_id !=0, tak mi to pri joine dá do "adresa" správnu vec. Pri záznamoch, kde je i.item_id=0 nie sú v tej ľavej tabuľke left joinu záznamy, takže mi to v tom pôvodnej mysql dotaze (otvárajúca otázka tohto postu) preskočilo tento záznam (čo je pre moje potreby zle, lebo potrebujem aj tie záznamy vo výsledku). Ja by som však potreboval, aby to vracalo aj záznamy s i.item_id=0, avšak v tom prípade by mala byť "adresa" naplnená prázdnou hodnotou, t.j. adresa vo výsledkoch=''. Preto mi to zatiaľ funguje s tým left joinom, ktorý vráti i tie výsledky, kde i.item_id=0, čo je pre mňa dobre a zároveň nechá návratovú hodnotu "adresa" prázdnu. Poprosil by som však vás - skúsenejších o poradenie, aby to bol správne napísaný príkaz, t.j. aby sa v ňom dalo orientovať. Ďakujem!
    9.2.2013 14:10 Logik
    Rozbalit Rozbalit vše Re: mysql join iba vtedy ak je hodnota jednej row ina ako 0
    Jo, je to správně napsanej příkaz.

    To, co tam máš nestandardně a v podstatě se dá říci blbě je to, že nepsaným standardem je, že když někde neexistuje vazba (tzn. není tam předmět), tak se to indikuje nikoli nulou, ale hodnotou NULL. A to proto, že pak např. můžeš na item_id zadefinovat tzn. cizí klíč (foreign key) neboli referenční integritu. To bych doporučoval přepsat, ale to nemá žádnej vliv na dotaz.

    Další věc, která je tam "podezřelá" je, že se na tabulku kontrolovanie se odkazuješ pomocí sloupečku item_id. Zpravidla se na tabulku odkazuje sloupcem s jménem tabulky. Takhle to vypadá, že ten sloupeček item_id odkazuje na nějakej předmět a nikoli na kontrolu toho předmětu. Pravděpodobně máš pro každej předmět max jednu kontrolu a tak máš tabulku kontrola a předmět "sloučenou" a je to teda fakticky dobře, ale doporučoval bych změnit název sloupce item_id tak, aby odpovídal tomu, na co ukazuje, tj. kontrolovanie_id.
    9.2.2013 19:31 adrinko | skóre: 22
    Rozbalit Rozbalit vše Re: mysql join iba vtedy ak je hodnota jednej row ina ako 0
    Logik, ďakujem Ti veľmi pekne za vysvetlenie. Budem na to v budúcnosti myslieť. Ešte raz vďaka!
    7.2.2013 08:47 j
    Rozbalit Rozbalit vše Re: mysql join iba vtedy ak je hodnota jednej row ina ako 0
    JOIN kontrolovanie k ON (i.item_id = k.id) and i.item_id <> 0
    

    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.