Diskuze: Výběrový dotaz
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 5 zpráv z 5.
//= 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.
Ahoj, já bych to řešil takhle:
//řazení od největšího po nejmenší
ORDER BY tZamestnanci.Prijmeni DESC
//zaměstnanec nemá žádný úkol
SELECT * FROM... //vyberou se všechny záznamy v tabulce
nebo popř.
WHERE [promenna] IS NULL
Začni od zaměstnanců, ne od úkolů, a INNER JOIN nahraď LEFT OUTER JOINem. INNER JOIN zařadí do výsledku jen zaměstnance, kteří mají nějaký záznam v té druhé tabulce. LEFT OUTER JOIN vypíše všechny zaměstnance a ti bez úkolů budou mít ve sloupci úkolu NULL, to je to co chceš.
Takhle:
SELECT tZamestnanci.Jmeno, tZamestnanci.Prijmeni, tUkoly.Nazev
FROM tZamestnanci
LEFT OUTER JOIN (tUkoly INNER JOIN tZamUkol ON tUkoly.IDukol = tZamUkol.IDukol) ON tZamUkol.IDzamestnance = tZamestnanci.IDzamestnanec
ORDER BY tZamestnanci.Prijmeni
Hned vyzkouším díky za rady. Vůbec mi nedošlo, že se jedná o Left JOIN.
Zobrazeno 5 zpráv z 5.