Operační systém MidnightBSD, fork FreeBSD optimalizovaný pro desktop s prostředím Xfce, byl vydán ve verzi 3.0. Přehled novinek v poznámkách k vydání.
Na GOG.com běží Spring Sale. Při té příležitosti lze získat zdarma počítačovou hru Neurodeck: Psychological Deckbuilder (ProtonDB).
Alex Ellis upozornil 15. března, že firma Docker se chystala zrušit bezplatný hosting open-source projektů na Docker Hubu. Po vlně odporu se představitelé firmy omluvili a posléze byl původní záměr odvolán.
Ve věku 94 let zemřel Gordon Moore, mj. spoluzakladatel společnosti Intel a autor Moorova zákona.
Mercurial (Wikipedie), software pro SCM (Source Code Management), byl vydán ve verzi 6.4. Přehled novinek v poznámkách k vydání. Ve dnech 5. až 7. dubna proběhne konference Mercurial Paris.
Byly rozdány Ceny Velkého bratra (Big Brother Awards) za rok 2022 pro největší slídily pořádané nevládní organizací Iuridicum Remedium. Dlouhodobý slídil: Microsoft. Firemní slídil: Seznam. Úřední slídil: Nejvyšší správní soud. Výrok Velkého bratra: Marian Jurečka. Pozitivní cena: NoLog.
Byla představena online vzdělávací platforma Ada Computer Science pro učitele, studenty a kohokoli, kdo se zajímá o informatiku. Stojí za ní Raspberry Pi Foundation a Univerzita v Cambridgi.
GitHub má nový RSA SSH klíč. Předchozí soukromý klíč byl krátce vystaven na GitHubu.
Společnost Framework Computer představila (YouTube) nové modulární notebooky: Laptop 13 s Intel Core nebo AMD Ryzen a Laptop 16 (YouTube).
Bylo vydáno Ubuntu 20.04.6 LTS, tj. šesté opravné vydání Ubuntu 20.04 LTS s kódovým názvem Focal Fossa. Přehled novinek v poznámkách k vydání a v přehledu změn.
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: