Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 9. diel - MySQL krok za krokom - Dotazy cez viacero 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
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
Odpovedá 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.

Odpovedať
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Jakub Siobos
Člen
Avatar
Odpovedá 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.

Editované
Avatar
Odpovedá 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.

Odpovedať
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Odpovedá 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...

Odpovedať
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

Avatar
Odpovedá 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áš?

Odpovedať
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Jan Ouška
Člen
Avatar
Odpovedá 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 :)

Avatar
Odpovedá 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
Editované
Odpovedať
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Odpovedá 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)
Editované
Odpovedať
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
Odpovedá na Michal Štěpánek
Jan Ouška:8.2.2019 13:55

díky moc vyzkouším :)

Posledné komentáre sú na spodnej časti poslednej stránky.
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.

Zobrazené 10 správy z 40.