#HACKUJBRNO 2024, byly zveřejněny výsledky a výstupy hackathonu města Brna nad otevřenými městskými daty, který se konal 13. a 14. dubna 2024.
Společnost Volla Systeme stojící za telefony Volla spustila na Kickstarteru kampaň na podporu tabletu Volla Tablet s Volla OS nebo Ubuntu Touch.
Společnost Boston Dynamics oznámila, že humanoidní hydraulický robot HD Atlas šel do důchodu (YouTube). Nastupuje nová vylepšená elektrická varianta (YouTube).
Desktopové prostředí LXQt (Lightweight Qt Desktop Environment, Wikipedie) vzniklé sloučením projektů Razor-qt a LXDE bylo vydáno ve verzi 2.0.0. Přehled novinek v poznámkách k vydání.
Nejvyšší soud podpořil novináře Českého rozhlasu. Nařídil otevřít spor o uchovávání údajů o komunikaci (data retention). Uvedl, že stát odpovídá za porušení práva EU, pokud neprovede řádnou transpozici příslušné směrnice do vnitrostátního práva.
Minulý týden proběhl u CZ.NIC veřejný test aukcí domén. Včera bylo publikováno vyhodnocení a hlavní výstupy tohoto testu.
Byla vydána nová verze 3.5.0 svobodné implementace protokolu RDP (Remote Desktop Protocol) a RDP klienta FreeRDP. Přehled novinek v ChangeLogu. Opraveno bylo 6 bezpečnostních chyb (CVE-2024-32039, CVE-2024-32040, CVE-2024-32041, CVE-2024-32458, CVE-2024-32459 a CVE-2024-32460).
Google Chrome 124 byl prohlášen za stabilní. Nejnovější stabilní verze 124.0.6367.60 přináší řadu oprav a vylepšení (YouTube). Podrobný přehled v poznámkách k vydání. Opraveno bylo 22 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Byla vydána nová verze 9.3 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání. Novinkou je vlastní repozitář DietPi APT.
Byl vydán Mozilla Firefox 125.0.1, první verze z nové řady 125. Přehled novinek v poznámkách k vydání, poznámkách k vydání pro firmy a na stránce věnované vývojářům. Vypíchnout lze podporu kodeku AV1 v Encrypted Media Extensions (EME). Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 125.0.1 je již k dispozici také na Flathubu a Snapcraftu.
Ahoj, mam nasledujucu qwery:
SELECT policy_table.user_group_name, policy_table.object_spec_desc, policy_table.action_spec_desc, policy_table.object_specification, service_type_action.service_type_name, service_type_action.action_name FROM policy_table LEFT JOIN service_type_action ON policy_table.action_specification = service_type_action.service_action_id;
z ktorej vypis je nasledujuci:
user_group_name | object_spec_desc | action_spec_desc | object_specification | service_type_name | action_name -----------------+------------------+------------------+----------------------+-------------------+------------- superUserGroup | user | serviceAction | bob | cas | grantAll analytici | userGroup | serviceAction | analytici | cas | grantAll vedci | userGroup | serviceAction | vedci | cas | grantAll vedci | trustAnchor | serviceAction | KarolovaTA | cas | grantAll superUserGroup | user | serviceAction | karol | cas | grantAll superUserGroup | object | serviceAction | 4 | cas | grantAll superUserGroup | objectGroup | serviceAction | data | cas | grantAll superUserGroup | serviceType | serviceAction | directory | cas | grantAll superUserGroup | object | serviceAction | 1 | cas | superuser analytici | objectGroup | serviceAction | data | directory | citanie superUserGroup | object | serviceAction | 1 | directory | citanie
Ak object_specification je cislo tak referuje na object_id tabulky object_table kde v stlpci object_name
je meno objektu ktore potrebujem zobrazit vo vypise miesto tohoto cisla. Ak v qwery miesto policy_table.object_specification
dam vnoreny select: (SELECT object_table.object_name FROM object_table WHERE object_table.object_id = policy_table.object_specification LIMIT 1)
tak sa mi mena tych objektov vo vypise zobrazia, ale ostatne riadky v stlpci object_specification su prazdne.
Cela qwery po pridani vnoreneho selectu:
SELECT policy_table.user_group_name, policy_table.object_spec_desc, policy_table.action_spec_desc, (SELECT object_table.object_name FROM object_table WHERE object_table.object_id = policy_table.object_specification LIMIT 1), service_type_action.service_type_name, service_type_action.action_name FROM policy_table LEFT JOIN service_type_action ON policy_table.action_specification = service_type_action.service_action_id;
user_group_name | object_spec_desc | action_spec_desc | ?column? | service_type_name | action_name -----------------+------------------+------------------+--------------------------+-------------------+------------- superUserGroup | user | serviceAction | | cas | grantAll analytici | userGroup | serviceAction | | cas | grantAll vedci | userGroup | serviceAction | | cas | grantAll vedci | trustAnchor | serviceAction | | cas | grantAll superUserGroup | user | serviceAction | | cas | grantAll superUserGroup | object | serviceAction | ftp://ulozisko.yweb.sk/* | cas | grantAll superUserGroup | objectGroup | serviceAction | | cas | grantAll superUserGroup | serviceType | serviceAction | | cas | grantAll superUserGroup | object | serviceAction | casServer | cas | superuser analytici | objectGroup | serviceAction | | directory | citanie superUserGroup | object | serviceAction | casServer | directory | citanie
Nevie mi niekto poradit ako formulovat qwery aby sa zobrazili mena aj mena objektov sucasne?
SELECT object_table.object_name FROM object_table WHERE object_table.object_id = policy_table.object_specification LIMIT 1dotaz záznam.
No to nie lebo su tam iba dva zaznamy cize na object_id = 1 a 4. Tu je tabulka object_table:
object_id | object_name | namespace_nickname -----------+--------------------------+-------------------- 1 | casServer | casNamespace 4 | ftp://ulozisko.yweb.sk/* | FTPDirectoryTree
SELECT policy_table.user_group_name, policy_table.object_spec_desc, policy_table.action_spec_desc, object_table.object_name, (SELECT object_table.object_name FROM object_table WHERE (object_table.object_id = policy_table.object_specification or object_table.object_name = policy_table.object_specification) LIMIT 1), service_type_action.service_type_name, service_type_action.action_name FROM policy_table LEFT JOIN service_type_action ON policy_table.action_specification = service_type_action.service_action_id;Případně tam dej druhý join s object_table (takže ve výsledku bude join 3 tabulek).
TO nie vyhoti my to chybu:
CHYBA: chýbajúci záznam v klauzuli FROM pre tabulku "object_table"
Pouzi Case
Case
When (SELECT object_table.object_name FROM object_table WHERE object_table.object_id = policy_table.object_specification LIMIT 1) = Null Then policy_table.object_specification
Else (SELECT object_table.object_name FROM object_table WHERE object_table.object_id = policy_table.object_specification LIMIT 1)
End Case
Neviem ci je spravny syntax. Ja pisem hlavne v TSQL
Popripade urob ten join a vysledok urob z obidvoch stlpcov cez case alebo isnull (ma mysql isnull?)
Super, takto som to upravil a ide to:
SELECT policy_table.user_group_name, policy_table.object_spec_desc, policy_table.action_spec_desc, CASE WHEN (SELECT object_table.object_name FROM object_table WHERE object_table.object_id = policy_table.object_specification LIMIT 1) IS NULL THEN policy_table.object_specification ELSE (SELECT object_table.object_name FROM object_table WHERE object_table.object_id = policy_table.object_specification LIMIT 1) END, service_type_action.service_type_name, service_type_action.action_name FROM policy_table LEFT JOIN service_type_action ON policy_table.action_specification = service_type_action.service_action_id;
Dakujem Vsetkym za pomoc, hlavne pSipi.
object_table
).NVL()
, v MySQL se jmenuje IFNULL(sloupeček1, sloupeček2)
– pokud je sloupeček1
NULL, nahradí se hodnotou sloupeček2
. Místo sloupeček2
může být i vnořený dotaz:
IFNULL(sloupeček1, (SELECT 'ahoj')Jenže tady narážíš na prasáckost toho modelu – alespoň malé zlepšení by bylo, mít tam místo jednoho sloupečku dva – pokud je ten jeden nulový (NULL), dohledáš si pomocí
ifnull
druhého sloupečku a vnořeného dotazu tu správnou hodnotu (pak se ten vnořený select pustí, jen když je potřeba).Tiskni Sdílej: