IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Diskusia – 9. diel - MS-SQL krok za krokom: Dotazy cez viac tabuliek (JOIN)

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Avatar
MrPabloz
Člen
Avatar
MrPabloz:14.4.2014 17:30

Nechápu jak může psát článek o takovém tématu nřkdo kdo je ještě na základce. Neumí to a snaží se napsat o tom článek. Tak třeba wherování, co to je za blbost, říká se tomu podmínka ;) další věc, dotaz přes více tabulek = spojování. Create table článek je taky špatně, chybí ti tam reference, outer join už dávno není, je jen Left nebo Right join a nebo pouze join. Vysvětlení spojení tabulek je taky blbost. Prostě první se to pořádně nauč a vystuduj aspon na střední než se pustíš do takových článků...

Odpovedať
14.4.2014 17:30
Harmonie těla a duše, to je to, oč se snažím! :)
Avatar
Odpovedá na MrPabloz
Zdeněk Pavlátka:14.4.2014 17:33

Takhle kritizuj články až napíšeš lepší ;)

Odpovedať
14.4.2014 17:33
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Odpovedá na MrPabloz
Michal Žůrek - misaz:14.4.2014 17:36

všechen kód byl testovaný a funguje.

 
Odpovedať
14.4.2014 17:36
Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na MrPabloz
David Hartinger:14.4.2014 17:39

Co jsi napsal je snůška nesmyslů, termíny jsou v pořádku. FYI článek jsem psal já na VŠ, Michal byl tak hodný, že ho portoval z MySQL i pro MS-SQL.

EDIT: Uživatele Pabloz z diskuze vykazuji a jeho další zprávy maži.

Editované 14.4.2014 17:45
Odpovedať
14.4.2014 17:39
New kid back on the block with a R.I.P
Avatar
Ondřej Štorc
Tvůrce
Avatar
Ondřej Štorc:14.4.2014 17:47

Ony ty články projdou ještě kontrolou od David Hartinger (možná i jiných)..

Odpovedať
14.4.2014 17:47
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Odpovedá na MrPabloz
Michal Štěpánek:14.4.2014 21:52

Už to nehul...

Odpovedať
14.4.2014 21:52
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
turlogh
Člen
Avatar
Odpovedá na David Hartinger
turlogh:25.4.2014 7:12

Po pravdě řečeno považuji část se spojováním tabulek přes where také za naprostou blbost. Z jednoho prostého důvodu. DB engine není zase tak moc chytrý, při klasickém selectu přes více tabulek prostě provede kartézský součin obsahu tabulek a pak na něm teprve provádí dotazy. U tabulek, které mívají milióny záznamů je to zabijácký. Proto právě vznikly joiny, kde DB engine napřed vybere záznamy z první tabulky a teprve poté k nim dohrává záznamy z tabulky druhé.
A pro šťouraly ... databáze programuji již přes 20 let (oracle, mssql, firebird) a spojit 2 tabulky bez joinnu bych si snad netroufnul ani na malých číselnících (nikdy nevíš kdy ty číselníky nabobtnají)

 
Odpovedať
25.4.2014 7:12
Avatar
Odpovedá na turlogh
Michal Štěpánek:25.4.2014 7:23

Je pravda, že "můžeme se JOINům vyhýbat" není zrovna šťastně napsáno, ale myslím, že to bylo myšleno tak, že tu ta možnost je. Osobně bych též spojení tabulek pomocí WHERE nedoporučoval, nehledě k tomu, že když ve Visual Studiu naklikám SQL dotaz pomocí návrháře, tak mi VS vytvoří automaticky JOIN a nespojuje tabulky pomocí WHERE...

Odpovedať
25.4.2014 7:23
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na turlogh
David Hartinger:25.4.2014 9:22

Že to RDBMS převede na joiny jsem psal, že to nemusí být optimálnější jsem psal taky. Kde je tedy problém? Proč nazýváš korektní konstrukci "také absolutní blbostí?". Proč také? Napsal jsi jen to, co je v článku, pokud máš konkrétní nápad na úpravu, tak sem s ním. Nezlob se na mě, ale tohle je jen tlachání.

Odpovedať
25.4.2014 9:22
New kid back on the block with a R.I.P
Avatar
turlogh
Člen
Avatar
turlogh:25.4.2014 10:18

Článek je napsaný docela obstojně, až na tu část s tím "wherováním". Ukázat jak lze spojit 2 tabulky přes where se dá v části, kde se popisuje syntaxe příkazu select ... ale je dobré zmínit, že u velkých tabulek se tento postup nedoporučuje, protože je velmi náročný na čas a použitou paměť.
V článku věnovaném dotazům přes více tabulek pomocí JOIN bych naopak čekal, že autor/autoři zmíní, že toto je ta správná náhrada za "spojení tabulek přes where".
Pokud mi čistě náhodou ve vývoji některých RDBMS uniklo, že autoři udělali optimalizaci při které poznají, že "select * from A, B where A.ID=B.A_ID" má nahradit za "select * from A left join B on A.ID=B.A_ID", pak prosím ... ale silně o tom pochybuji a navíc je celá řada RDBMS, která tohle určitě neumí. Nahoře jste se obuli do MrPabloz za to, že poukázal na tato konstrukce je nevhodná ... a ona skutečně není vhodná.
Nemám zájem na flame, jen považuji za vhodné alespoň v diskusi vyjádřit názor člověka s mnohaletou praxí na to, že ne vše zmíněné v článku je dostatečně srozumitelné pro laika, aby věděl co si vybrat. Ten závěr totiž působí tak, že JOIN není nutný ... já tvrdím, že je. V naprosté většině případů. Když už nic jiného, prokáže tím autor dotazu svou odbornost.

 
Odpovedať
25.4.2014 10:18
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zatiaľ nikto nevložil komentár - buď prvý!