NOVINKA: Staň se datovým analytikem od 0 Kč a získej jistotu práce, lepší plat a nové kariérní možnosti. 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
Odpovídá na Ondřej Krsička
Michal Žůrek - misaz:1.5.2016 11:12

tak to zkus smazat a uvidíš. :) Ono když se nad tím hooodně hluboce zamyslíš, tak to dává smysl, prostě když používáš GROUP BY, tak musí být všechny řádky podle něčeho seskupené nesmí existovat řádek, který by obsahoval možnost díky které by nebyl seskupitelný, tudíž všechno co jde do výstupu musí být seskupeno (nějak). Snad jsem se při tom popisu v tom sám nezamotal.

 
Odpovědět
1.5.2016 11:12
Avatar
Odpovídá na Michal Žůrek - misaz
Ondřej Krsička:1.5.2016 11:14

Tak to pak jo, díky :-) :-)

 
Odpovědět
1.5.2016 11:14
Avatar
Mirek Senk
Člen
Avatar
Mirek Senk:31.8.2016 15:34

Ahoj, ve vzoru syntaxe na přidání osoby se špatným číslem chybí jedna hranatá závorka před AutorId

INSERT INTO [Clanky] (AutorId], ... má být INSERT INTO [Clanky] ([AutorId], ...

Jinak strašně moc děkuju za tyhle lekce!

 
Odpovědět
31.8.2016 15:34
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Mirek Senk
David Hartinger:31.8.2016 15:36

Díky, opraveno :)

Odpovědět
31.8.2016 15:36
New kid back on the block with a R.I.P
Avatar
Jakub Bómíček Bohm:5.10.2017 20:22

Zdravím. Po přečtení této lekce jsem konečně pochopil joiny a podobně. Jenom by mě zajímalo, proč nepoužíváte u vazeb 1 : N cizí klíče. Poté by se dalo vyhnout problémům s neexistujícím článkem pro toho uživatele, nebo neexistujícím uživatelem pro článek. Tím pádem by se outer join vůbec nemusel používat, jelikož by ani nešlo zadat špatné id.

 
Odpovědět
5.10.2017 20:22
Avatar
Odpovídá na Jakub Bómíček Bohm
Michal Žůrek - misaz:5.10.2017 20:26

Cizí klíče by to samozřejmě vyřešili. Články jsou přepis článků myslím z MySQL. Nepoužívají se zde z historických důvodů. OUTER JOIN by se musel používat, protože vybíráte uživatele z tabulky články. Už ta předchozí věta zní divně. Pokud nebude existovat článek k osobě, tak prostě za normálních okolností smůla. OUTER JOIN, tam dá tu osobu s hodnotami NULL všude kde nejsou.

 
Odpovědět
5.10.2017 20:26
Avatar
Jakub Bómíček Bohm:5.10.2017 20:37

Jo už jsem to pochopil. Když vkládám ty články, tak zadávám id autora ( primární klíč autora ). V tomto případě nezadávám emu - zadávám jen 1,2,2,3 -, takže bych pak použil ten right outer join a vypsalo mi to, že ema nemá žádný článek. Šlo mi jen o ten článek s id autora 99, to by nešlo vůbec vytvořit s použitím cizího klíče.

 
Odpovědět
5.10.2017 20:37
Avatar
Odpovídá na Jakub Bómíček Bohm
Michal Žůrek - misaz:5.10.2017 20:45

Přesně tak. Otázkou je taky jestli v době GPDR (nebo jak se to jmenuje) to dokonce bez cizích klíčů není v něčem trochu lepší.

 
Odpovědět
5.10.2017 20:45
Avatar
Jakub Ondrák:21.6.2018 16:33

když ve Visual Studiu naklikám SQL dotaz pomocí návrháře, tak mi VS vytvoří automaticky JOIN a nespojuje tabulky pomocí WHERE...

Ahoj, prosím, kde najdu toho návrháře? :-)

 
Odpovědět
21.6.2018 16:33
Avatar
Petra D.
Člen
Avatar
Petra D. :12.9.2018 10:32

Ahoj, zkoušela jsem tento příkaz výše pro zobrazení počtu článků uživatele:

SELECT [Uzivatele].[Prez­divka], COUNT(*) AS [PocetClanku]
FROM [Clanky]
JOIN [Uzivatele] ON [Uzivatele].[Id] = [Clanky].[AutorId]
GROUP BY [Clanky].[Auto­rId],[Uzivate­le].[Prezdivka];

a nezobrazí to Emu, která nenapsala žádný článek. Pokud přidám RIGHT JOIN aby se zohlednily i uživatelé bez připojených článků, tak mi to zase napíše počet článků u Emy 1, protože se započítá i NULL. Dá se toto nějak ošetřit, abych viděla pravdivě i uživatele, kteří mají 0 článků? Díky za radu :)

Editováno 12.9.2018 10:33
Odpovědět
12.9.2018 10:32
Jaký si to uděláš, takový to máš...
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.