Diskuze: Agregační funkce
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 6 zpráv z 6.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.
'Vypište seznam všech předmětů, které se učí v místnosti '
To pracujes s tabulkou kde je jen id_predmet a id_mistnost, rekneme, ze se
jmenuje zapisy. Ostatni informace si pridas z dalsich tabulek
SELECT z.id_mistnost, z.id_predmet, z.id_student,
m.kod AS mist_kod, m.nazev AS mist_nazev,
p.kod AS pred_kod, p.nazev AS pred_nazev,
s.jmeno, s.prijmeni
FROM zapisy z
LEFT JOIN mistnosti m ON m.id_mistnost = z.id_mistnost
LEFT JOIN predmety p ON p.id_predmet = z.id_predmet
LEFT JOIN studenti s ON s.id_student = z.id_student
WHERE m.kod='51-107'
zapisy
id_mistnost, id_predmet, id_student
3, 7, 56
mistnosti
id_mistnost, kod, nazev
7, 'b1', 'laborator chemie'
predmety
id_predmet, kod, nazev
3, 'cjl', 'cesky jazyk a literatura'
studenti
id_student, jmeno, prijmeni
56, 'tomas', 'popelka'
Zobrazi to vsechny studenty, kteri jsou zapsani v mistnosti. Takze to pak staci grupovat podle mistnosti a predmetu a odpojit od toho tabulku studenti, protoze te nezajima.
Díky a kde je ta druhá podmínka "nebo je na něj zapsán aspoň jeden
student"?
Jak pro lepší komunikaci, první tabulka je tabulka "Predmet", ta pod ní
"Zapis".
Prepokladam, ze princip je takovy, ze studenti s zapisuji do rozvrhu predmety. Student pri zapise vytvori zaznam
zapisy
id_mistnost, id_predmet, id_student
3, 7, 56
Z toho plyne, ze kazdy radek z tabulky zapisy odpovida stavu aspon 1 student.
Ty to delas prave opacne. Ty si oteviras tabulku predmety, kde mas i
predmety, ktere nikdo nema zapsane.
Ja si oteviram primo zapsane predmety a a temto zapsanym donacitavam dalsi
informace z jinych tabulek pres left join.
Nebo, mas nejaky duvod, proc to delas tak, jak to delas? Zadani od ucitele?
Ikdyz, mozna to tvoje udela totez, jak tak koukam na tutorialpoint INNER JOIN nepouzivam. U LEFT JOIN
zalezi na poradi, co k cemu pripojujes. To tam je krasne videt, kdyz tam data
bere podle tab. customers a ne podle tab. order, tak je tam spoustu radku s null
udaji.
https://www.tutorialspoint.com/…er-joins.htm
https://www.tutorialspoint.com/…ft-joins.htm
Zobrazeno 6 zpráv z 6.