Diskuze: Komentare
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 3 zpráv z 3.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.


Můžeš zkusit "poddotazy", nebo použít JOIN na spojování tabulek. Konkrétněji ti ale těžko někdo poradí, když jsi neuvedl strukturu těch ostatních tabulek...
No, já bych ti mohla poradit řešení pro Microsoft SQL Server a ty by sis to mohl upravit na MySQL. (já jejich syntaxi neznám, tedy sql je stejné, ale je třeba použít kurzor a nějaký while cyklus...)
Tak tedy pro SQL server by to bylo třeba:
DECLARE @ParentID int
CREATE TABLE #Temp(parent_id int, potomek_id int)
-- Procházíme cyklem pro každý kořenový příspěvek
DECLARE Prispevky CURSOR FAST_FORWARD FOR
SELECT id
FROM dbo.Test
where parent_id is null
OPEN Prispevky
FETCH NEXT FROM Prispevky
INTO @ParentID
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @pocet int
SET @pocet = 0
INSERT INTO #Temp (parent_id, potomek_id)
SELECT @ParentID, id
FROM dbo.Test
WHERE parent_id = @ParentID
WHILE @pocet != (SELECT COUNT(*) FROM #Temp)
BEGIN
SET @pocet = (SELECT COUNT(*) FROM #Temp)
INSERT INTO #Temp (parent_id, potomek_id)
SELECT T1.parent_id, T1.id
FROM dbo.Test T1
INNER JOIN #Temp T
ON T.parent_id = T1.id
WHERE T1.parent_id is not null
EXCEPT
(SELECT * FROM #Temp T2)
END -- while @pocet
FETCH NEXT FROM Prispevky
INTO @ParentID
END -- Kurzor Ustavy
CLOSE Prispevky
DEALLOCATE Prispevky
-- Nakonec ještě vložíme samotné kořenové příspěvky
INSERT INTO #Temp (parent_id, potomek_id)
(SELECT id, NULL
FROM dbo.Test
where parent_id is null)
-- *** VÝSLEDEK ***
SELECT * FROM #Temp
DROP TABLE #Temp
Zobrazeno 3 zpráv z 3.