NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
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í.

Diskuze – Lekce 9 - MS-SQL krok za krokem: Dotazy přes více tabulek (JOIN)

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na turlogh
David Hartinger:25.4.2014 10:36

Díky za hodnotný komentář. Mám dojem, že když jsem článek psal, dal jsem dotaz s WHERE do optimizeru a vygenerovalo to normálně INNER JOIN. Samozřejmě je otázka jak se na to lze spolehnout.

MrPabloz psal něco úplně jiného, říkal, že to místo wherování máme nazvat "podmínka", ne že to je špatně. A potom že místo termínu "dotaz přes více tabulek" musíme použít označení "spojování". Dále že už "dávno není outer join" a další nesmysly. Proto má reakce.

Článek jsem upravil tak, aby bylo jasné, že wherování je spíše teoretická záležitost.

Odpovědět
25.4.2014 10:36
New kid back on the block with a R.I.P
Avatar
coells
Tvůrce
Avatar
Odpovídá na turlogh
coells:25.4.2014 12:29

Pokud mluvíme o T-SQL, pak podle krátké zmínky v dokumentaci výraz FROM a,b WHERE c opravdu odpovídá FROM a JOIN b ON c. Ale preferovaná metoda je použití joinů.

Více informací jsem hledal marně. Podle mého se jedná o cross-join, jenže ... optimalizace. Zkusí se využít nejlepší index, jaký je k dispozici a exekuční plán se pak opravdu tváří jako inner join.

 
Odpovědět
25.4.2014 12:29
Avatar
Neaktivní uživatel:7.9.2015 14:45

Nie som schopný niektoré veci hneď pochopiť z článku, nakoľko som totálny amatér. Ale tá diskusia je tiež užitočná. Vďaka že takto vmieňate názory..

Odpovědět
7.9.2015 14:45
Neaktivní uživatelský účet
Avatar
Ondřej Pech
Člen
Avatar
Ondřej Pech:26.4.2016 9:50

Zajímalo by mě, jak napsat SQL kód, pokud mám jednu tabulku ve které zaznamenávám docházku a s druhou tabulkou (ve které mám jména návštěvníků) je schodný sloupec OsobniID ale jména mám uložená zvlášť Jméno a v dalším sloupci Příjmení. Potřeboval bych tedy podle Osobního ID vypsat jméno i příjmení.

tabulka dochazka např.
OsobniID PrvniPrichod DruhyPrichod
123456 0 1
123457 1 1

tabulka clenove např.
OsobniID Jmeno Prijmeni ...
123456 Jimmy Bourač ...
123457 Pepa Novák ...

a chtěl bych vypsat pro DruhyPrichod:
Jimmy Bourač - 1
Pepa Novák - 1

může mi někdo poradit prosím?

 
Odpovědět
26.4.2016 9:50
Avatar
Odpovídá na Ondřej Pech
Michal Štěpánek:26.4.2016 10:17
SELECT (clenove.Jmeno + ' ' + clenove.Prijmeni) AS Zamestnanec, dochazka.DruhyPrichod FROM dochazka INNER JOIN clenove ON clenove.OsobniID = dochazka.OsobniId WHERE dochazka.DruhyPrichod = '1'
Odpovědět
26.4.2016 10:17
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Ondřej Pech
Člen
Avatar
Odpovídá na Michal Štěpánek
Ondřej Pech:26.4.2016 10:53

To by mohlo fungovat, díky :)

 
Odpovědět
26.4.2016 10:53
Avatar
Ondřej Krsička:30.4.2016 20:23

Jak napíšu dotaz, který v prvním sloupci vypíše uživatele a ve druhém počet jeho článků?

 
Odpovědět
30.4.2016 20:23
Avatar
Odpovídá na Ondřej Krsička
Ondřej Krsička:30.4.2016 20:34

jejich článků*

 
Odpovědět
30.4.2016 20:34
Avatar
Odpovídá na Ondřej Krsička
Michal Žůrek - misaz:30.4.2016 21:26
SELECT [Uzivatele].[Prezdivka], COUNT(*) AS [PocetClanku]
FROM [Clanky]
JOIN [Uzivatele] ON [Uzivatele].[Id] = [Clanky].[AutorId]
GROUP BY [Clanky].[AutorId],[Uzivatele].[Prezdivka];
 
Odpovědět
30.4.2016 21:26
Avatar
Odpovídá na Michal Žůrek - misaz
Ondřej Krsička:1.5.2016 10:54

Díky, akorát na posledním řádku nechápu to , [Uzivatele].[Prez­divka];

 
Odpovědět
1.5.2016 10:54
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 10 zpráv z 39.