NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
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 - MySQL 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 Jakub Siobos
Michal Šmahel:10.7.2018 18:33

Pokud ti jde o název sloupce, může být takřka libovolný. Ale každopádně je na místě, aby název sloupce jasně říkal, co je dosazeno jako hodnoty sloupce.

Jestliže bys místo "autor_id" použil "uzivatel_id", trochu by sis usnadnil práci při spojování (je možné použít USING), ale také trochu znepřehlednil strukturu tabulky. Pokud to tak chceš používat, je dobré alespoň uvádět komentáře.

Odpovědět
10.7.2018 18:33
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Jakub Siobos
Člen
Avatar
Odpovídá na Michal Šmahel
Jakub Siobos:10.7.2018 21:42

Děkuji za odpověď, jde mi o to, že můžu mít i 10 tabulek, které budou spojeny přes uživatel_id a v tom okamžiku mi přijde lepší ty sloupce mít pojmenované stejně, protože mi to naopak tu strukturu zpřehlední. Nechápu, proč by naopak ta struktura měla být nepřehledná. Nemám praktické zkušenosti, proto se ptám.

Editováno 10.7.2018 21:43
 
Odpovědět
10.7.2018 21:42
Avatar
Odpovídá na Jakub Siobos
Michal Šmahel:11.7.2018 11:32

Je to celkem subjektivní. Pokud ti to přijde přehlednější, používej to. Jen pro ostatní raději uváděj do komentáře, jakou úlohu ten uživatel plní. Dělám to podobně a funguje to ;) . Důležité je používat v celé databázi stejný systém, aby se v tom dalo vyznat. Někdo v tom může chvíli tápat, protože je zvyklý na ten druhý způsob (konkrétně pojmenovat sloupec dle jeho úlohy). Pokud to někde sepíšeš a budeš to mít v komentáři připsané, nevidím v tom problém.

Odpovědět
11.7.2018 11:32
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Odpovídá na Jakub Siobos
Michal Štěpánek:12.7.2018 13:55

Můžeš si to samozřejmě pojmenovat podle toho, jak chceš. Můžeš mít situaci, kdy s tím jedním sloupcem "uzivatel_id" z tabulky "uzivatel" budeš mít propojeno z tabulky "clanky" více sloupců, protože jeden článek může spravovat více uživatelů třeba "admin", "editor", "schvalovatel", apod.
Pak bys musel řešit, co k čemu patří...
Mít sloupce typu "uzivatel_id1", "uzivatel_id2" asi není příliš přínosné pro snadnou orientaci v DB...

Odpovědět
12.7.2018 13:55
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Jan Ouška
Člen
Avatar
Jan Ouška:7.2.2019 20:53

Mám dotaz na select:
Potřebuji vypsat produkty z objednávek, ale jen z těch objednávek které obsahují produkt XY.
Takže aby výsledek vypadal nejak takto (objednávka obsahuje produkt s id 123)

objednávka, produkt, množstv
1111, 123, 1
1111, 444, 2
1111, 321, 1
1112, 123, 1
1118, 123, 1
1118, 541, 3

Doufám že jsem to popsal tak že to jde pochopit :D díky

 
Odpovědět
7.2.2019 20:53
Avatar
Odpovídá na Jan Ouška
Michal Šmahel:8.2.2019 10:38

Ahoj, nenapsal jsi jak vypadá vstupní tabulka(popř. tabulky). Dále nepíšeš, na co to vlastně potřebuješ. Chceš zjistit, jaké produkty se prodávají společně s tím, který zadáš?

Odpovědět
8.2.2019 10:38
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Jan Ouška
Člen
Avatar
Odpovídá na Michal Šmahel
Jan Ouška:8.2.2019 12:00

tak tabulka ma udaj který jsem napsal plus x dalších ale to už není důležité mám vybrané tři udaje, ale jde mi přesně o to jaké produkty se prodávají společně s tím který zadám.... nejak na to nemůžu přijít... jestli nějaký podselect nebo jak to napodmínkovat .. abych neviděl jen ten produkt ale i ostatní co mají stejné číslo objednávky díky :)

 
Odpovědět
8.2.2019 12:00
Avatar
Odpovídá na Jan Ouška
Michal Štěpánek:8.2.2019 13:25

Na to právě chtěl Michal Šmahel, abys napsal ty podrobnosti, páč to je dost důležitý, jak jsou dělaný tabulky. Nicméně výše v článku je to dosti podrobně popsáno, jak se používá JOIN, abys dosáhl kýženého výsledku...
např.

SELECT Produkty.Nazev, Objednavky.Cislo FROM Objednavky
JOIN Produkty ON Produkty.ProduktId = Objednavky.ProduktId
WHERE Objednavky.Cislo = cisloobjednavky
Editováno 8.2.2019 13:26
Odpovědět
8.2.2019 13:25
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Odpovídá na Jan Ouška
Michal Štěpánek:8.2.2019 13:29

Nebo bez JOINu např. takhle

SELECT Nazev, atd... FROM Produkty
WHERE ProduktId IN (SELECT ProductId FROM Objednavky
WHERE CisloObjednavky = cisloobjednavky)
Editováno 8.2.2019 13:31
Odpovědět
8.2.2019 13:29
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Jan Ouška
Člen
Avatar
Odpovídá na Michal Štěpánek
Jan Ouška:8.2.2019 13:55

díky moc vyzkouším :)

 
Odpovědět
8.2.2019 13:55
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 40.