IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Adrian Scruse:2.4.2018 17:16

Zdravím, chtěl bych se jen zeptat jak u této otázky "výběr všech zaměstnanců a k nim příslušné zakázky (vybírají se i zaměstnanci bez
zakázek), výsledek je seřazený vzestupně, podle příjmení zaměstnance". Jak vyřeším to, aby mi to vypisovalo jak je uvedeno v závorce všechny zaměstnance i když nemají přiřazený úkol. Zde mám obrázky jak to vypadá, ale ve výsledku vidím pouze ty zaměstnance co ten úkol mají. Možná je to triviální, ale nedochází mi to děkuji.

 
Odpovědět
2.4.2018 17:16
Avatar
Adrian Scruse:2.4.2018 17:17

Druhý obrázek takto to vypadá v codu

 
Nahoru Odpovědět
2.4.2018 17:17
Avatar
albertpatera
Tvůrce
Avatar
Odpovídá na Adrian Scruse
albertpatera:2.4.2018 22:53

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
Editováno 2.4.2018 22:55
 
Nahoru Odpovědět
2.4.2018 22:53
Avatar
Jakub Švasta
Lektor
Avatar
Odpovídá na Adrian Scruse
Jakub Švasta:3.4.2018 1:40

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
Editováno 3.4.2018 1:42
 
Nahoru Odpovědět
3.4.2018 1:40
Avatar
Odpovídá na Jakub Švasta
Adrian Scruse:3.4.2018 20:31

Hned vyzkouším díky za rady. Vůbec mi nedošlo, že se jedná o Left JOIN.

 
Nahoru Odpovědět
3.4.2018 20:31
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.