Byla vydána verze 4.0 kolekce svobodného softwaru umožňujícího nahrávání, konverzi a streamovaní digitálního zvuku a obrazu FFmpeg (Wikipedie). Přehled novinek v Changelogu (GitHub).
Včera vydanou hru Rise of the Tomb Raider pro Linux lze do pondělí 23. dubna koupit na Steamu s 67% slevou. Místo 49,99 € za 16,49 €.
Na Humble Bundle lze získat počítačovou hru Satellite Reign (Wikipedie, YouTube) běžící také v Linuxu zdarma. Speciální akce končí v sobotu v 19:00.
Společnost Apple koupila před třemi lety společnost FoundationDB vyvíjející stejnojmenný NoSQL databázový systém FoundationDB (Wikipedie). Včera byl tento systém uvolněn jako open source pod licencí Apache 2.0. Zdrojové kódy jsou k dispozici na GitHubu.
Po dva a půl roce od vydání verze 5.7 oznámila společnost Oracle vydání nové major verze 8.0 (8.0.11) databázového systému MySQL (Wikipedie). Přehled novinek v poznámkách k vydání. Zdrojové kódy komunitní verze MySQL jsou k dispozici na GitHubu.
Spolek OpenAlt zve příznivce otevřených technologií a otevřeného přístupu na 151. brněnský sraz, který proběhne v pátek 20. 4. od 18:00 hodin v restauraci Benjamin na Drobného 46.
Byla vydána verze 18.04.0 KDE Aplikací (KDE Applications). Přehled novinek v kompletním seznamu změn a na stránce s dalšími informacemi.
Bylo oznámeno vydání nové stabilní verze 1.26 a beta verze 1.27 open source textového editoru Atom (Wikipedie). Přehled novinek i s náhledy v příspěvku na blogu. Podrobnosti v poznámkách k vydání.
Dle plánu byla dnes vydána hra Rise of the Tomb Raider (Wikipedie) pro Linux. Koupit ji lze za 49,99 €.
Společnost Oracle vydala čtvrtletní bezpečnostní aktualizaci svých softwarových produktů (CPU, Critical Patch Update). Opraveno bylo celkově 254 bezpečnostních chyb. V Oracle Java SE je například opraveno 14 bezpečnostních chyb. Vzdáleně zneužitelných bez autentizace je 12 z nich. V Oracle MySQL je opraveno 33 bezpečnostních chyb. Vzdáleně zneužitelné bez autentizace jsou 2 z nich.
select p.* from produkty p inner join produkt_parametry pp on p.id = pp.produkt_id where (pp.parametr_id = 8 and pp.parametr_vlastnost = 'cervena') or (pp.parametr_id = 10 and pp.parametr_vlastnost = 'zluta')Pokud ne, tak bych zkusil z db vytáhnout záznamy pro každou podmínku zvlášť a unionem výsledky spojit dohromady.
select * from produkty where id in (select produkt_id from produkt_parametry where parametr_id = 8 and parametr_vlastnost = 'cervena') and id in (select produkt_id from produkt_parametry where parametr_id = 10 and parametr_vlastnost = 'zluta')Psal jsem to z hlavy, asi by se našlo i nějaké elegantnější řešení.
SELECT produkty.* FROM produkty, produkt_parametry AS p1, produkt_parametry AS p2 WHERE produkty.id = p1.produkt_id AND produkty.id = p2.produkt_id AND p1.parametr_id = 8 AND p1.parametr_vlastnost = 'cervena' AND p2.parametr_id = 10 AND p2.parametr_vlastnost = 'zluta'
Neměli byste ještě tip, na nějakou knihu o MYSQL (jak jsem se zmiňoval v 1. příspěvku)?Např. MySQL Cookbook
Vypadá to, že MySQL-isté se tradičně vyhýbají joinům ( :-) ), takže
select ... from PRODUKTY P inner join PRODUKT_PARAMETRY P1 on P1.PRODUKT_ID=P.ID and P1.PARAMETR_ID=8 and P1.PARAMETR_VLASTNOST='cervena' inner join PRODUKT_PARAMETRY P2 on P2.PRODUKT_ID=P.ID and P2.PARAMETR_ID=10 and P2.PARAMETR_VLASTNOST='cervena'
(za předpokladu, že (PRODUKT_ID,PARAMETR_ID)
v tabulce PRODUKT_PARAMETRY
je unique).
Mimochodem, k čemu je v tabulce PRODUKT_PARAMETRY
sloupec ID
?
'zluta'
.
PARAMETR_ID
.
ID
v tabulce přeci potřebuje, jak pak prováže produkty a jejich parametry?
Na to nepotřebuje ID v tabulce parametrů:
alter table PRODUKT_PARAMETRY add foreign key (PRODUKT_ID) references PRODUKTY(ID)
SELECT ...`slúpec`... FROM `produkty` AS `p` INNER JOIN `produkt_parametry` AS `p1` ON `p1`.`produkt_id`=`p`.`id` AND `p1`.`parametr_id`=8 AND `p1`.`parametr_vlastnost`='cerevena' INNER JOIN `produkt_parametry` AS `p2` ON `p2`.`produkt_id`=`p`.`id` AND `p2`.`parametr_id`=10 AND `p2`.`parametr_vlastnost`='zluta'
order
, tak by to asi neprošlo, ale jako `order`
nebude problém.
order
je toho příkladem. Nelíbí se mi atribut s názvem position
.
order_
?
Tiskni
Sdílej: