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 13:00 | Komunita

MojeFedora.cz informuje, že Fedora 27 dostane podporu pro AAC. Podpora multimediálních formátů je ve výchozí instalaci Fedory tradičně limitovaná kvůli softwarovým patentům, ale desktopový tým Red Hatu se ji i tak snaží v poslední době co nejvíce rozšířit. Už nějaký čas obsahuje kodeky pro MP3, H.264, AC3 a nyní byl přidán také kodek pro další velmi rozšířený zvukový formát – AAC.

Ladislav Hagara | Komentářů: 0
včera 23:55 | Pozvánky

Spolek OpenAlt zve příznivce otevřených technologií a otevřeného přístupu na 145. brněnský sraz, který proběhne v pátek 20. října od 18:00 hodin v restauraci Time Out na adrese Novoměstská 2 v Řečkovicích. Jedná se o poslední sraz před konferencí OpenAlt 2017, jež proběhne o víkendu 4. a 5. listopadu 2017 na FIT VUT v Brně. Běží registrace účastníků.

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

Byla vydána verze 5.2.0 multiplatformního virtualizačního nástroje Oracle VM VirtualBox. Jedná se o první stabilní verzi z nové větve 5.2. Z novinek lze zmínit například možnost exportování VM do Oracle Cloudu, bezobslužnou instalaci hostovaného systému nebo vylepšené GUI. Podrobnosti v seznamu změn. Aktualizována byla také dokumentace.

Ladislav Hagara | Komentářů: 1
včera 14:00 | Zajímavý projekt

Byl spuštěn Humble Down Under Bundle. Za vlastní cenu lze koupit multiplatformní hry The Warlock of Firetop Mountain, Screencheat, Hand of Fate a Satellite Reign. Při nadprůměrné platbě (aktuálně 3,63 $) také Hacknet, Hacknet Labyrinths, Crawl a Hurtworld. Při platbě 12 $ a více lze získat navíc Armello.

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

Google Chrome 62 byl prohlášen za stabilní (YouTube). Nejnovější stabilní verze 62.0.3202.62 tohoto webového prohlížeče přináší řadu oprav a vylepšení. Vylepšeny byly také nástroje pro vývojáře (YouTube). Opraveno bylo 35 bezpečnostních chyb.

Ladislav Hagara | Komentářů: 4
včera 11:00 | Zajímavý článek

Článek (en) na Mozilla.cz je věnován vykreslování stránek ve Firefoxu. V průběhu roku 2018 by se ve Firefoxu měl objevit WebRender, jenž by měl vykreslování stránek urychlit díky využití GPU.

Ladislav Hagara | Komentářů: 5
včera 08:22 | Bezpečnostní upozornění

NÚKIB (Národní úřad pro kybernetickou a informační bezpečnost) informuje o zranitelnosti ROCA v procesu generování RSA klíčů, který se odehrává v softwarové knihovně implementované například v kryptografických čipových kartách, bezpečnostních tokenech a dalších hardwarových čipech vyrobených společností Infineon Technologies AG. Zranitelnost umožňuje praktický faktorizační útok, při kterém útočník dokáže vypočítat

… více »
Ladislav Hagara | Komentářů: 3
včera 01:23 | Zajímavý software

Příspěvek na blogu otevřené certifikační autority Let's Encrypt informuje o začlenění podpory protokolu ACME (Automatic Certificate Management Environment) přímo do webového serveru Apache. Klienty ACME lze nahradit novým modulem Apache mod_md. Na vývoj tohoto modulu bylo uvolněno 70 tisíc dolarů z programu Mozilla Open Source Support (MOSS). K rozchození HTTPS na Apache stačí nově přidat do konfiguračního souboru řádek s ManagedDomain. Minutový videonávod na YouTube [reddit].

Ladislav Hagara | Komentářů: 3
17.10. 14:15 | Komunita

Daniel Stenberg, autor nástroje curl, na svém blogu oznámil, že obdržel letošní Polhemovu cenu, kterou uděluje Švédská inženýrská asociace za „technologickou inovaci nebo důvtipné řešení technického problému“.

marbu | Komentářů: 11
17.10. 13:40 | Pozvánky

Cílem Social Good Hackathonu, který se uskuteční 21. a 22. října v Brně, je vymyslet a zrealizovat projekty, které pomůžou zlepšit svět kolem nás. Je to unikátní příležitost, jak představit nejrůznější sociální projekty a zrealizovat je, propojit aktivní lidi, zástupce a zástupkyně nevládních organizací a lidi z prostředí IT a designu. Hackathon pořádá brněnská neziskovka Nesehnutí.

… více »
Barbora | Komentářů: 1
Jak se vás potenciálně dotkne trend odstraňování analogového audio konektoru typu 3,5mm jack z „chytrých telefonů“?
 (10%)
 (1%)
 (1%)
 (1%)
 (73%)
 (13%)
Celkem 89 hlasů
 Komentářů: 5, poslední dnes 07:28
    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: 484×
    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á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.