Jak na tento select? – MySQL – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Jak na tento select? – MySQL – Fórum – Programujte.comJak na tento select? – MySQL – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
fix0
Stálý člen
19. 8. 2020   #1
-
0
-

Ahoj všem,

prosím o radu, zase tu řeším, jak zařídit select, jak potřebuji.

Uvedu příklad:

zanry(id,nazev);

  •     1 | komedie
  •     2 | akcni
  •     3 | dokument
  •     4 | drama
  •     5 | historicky
  •     6 | seriál
  •     7 | rodinný
  •     8 | fantasy
  •     9 | dobrodružný
  •     10 | mysteriozni

film(id,nazev,rok,id_zanru);

  •     1 | Titanic | 5
  •     2 | Machři | 1
  •     3 | Machři | 7
  •     4 | Indiana Jones |  9
  •     5 | Harry potter | 8
  •     6 | Harry potter | 10

RESULT(film;zanry);

  • Titanic               | historický
  • Machři               | komedie;rodinný
  • Indiana Jones    | dobrodružný
  • Harry potter       | fantasy;mysteriozni

Moje představa SQL dotazu:

SELECT

    filmy.nazev,

    CONCREATE(IMPLODE(skupiny.nazev, ';') <- to je jen nesmysl, tenhle řádek potřebuji, vymyslet

FROM filmy

LEFT JOIN skupiny ON filmy.id_zanru = skupiny.id

Děkuji za rady.

Nahlásit jako SPAM
IP: 31.30.174.–
Řešení
Kit+15
Guru
19. 8. 2020   #2
-
+1
-
Zajímavé
fix +
Vyřešeno Nejlepší odpověď
Nahlásit jako SPAM
IP: 46.135.80.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
fix0
Stálý člen
20. 8. 2020   #3
-
0
-

Perfektní, děkuji.

Nahlásit jako SPAM
IP: 31.30.174.–
MilanL+1
Grafoman
20. 8. 2020   #4
-
+1
-
Zajímavé
fix +

#3 fix
Jen by se to mělo řešit křížovou tabulkou

v tabulce filmy jen ID a název

  •     1 | Titanic
  •     2 | Machři
  •     3 | Indiana Jones
  •     4 | Harry potter

přidat tabulku FilmZanr, kde budou propojené filmy s žánry

....ID_filmu | ID_zanru

  •     1 | 5
  •     2 | 1
  •     2 | 7
  •     3 | 9
  •     4 | 8
  •     4 | 10

    to samé pak na např na herce a štáb
    ID_filmu | ID_funkce | ID_Clovek
  • v tabulce funkcí třeba scénář, režie, kamera, herec atd
  • v další tabulce mít lidi od filmu
  • případně ještě jeden sloupec pro herce koho ve filmu představují, bud jako přímou hodnotu nebo zas přes tabulku

Nahlásit jako SPAM
IP: 91.139.9.–
fix0
Stálý člen
20. 8. 2020   #5
-
0
-

Spojovací tabulku znám. Momentálně mě hned nenapadá, jak bych pak JOINoval SELECT, abych data přes tu spojovací tabulku uměl zase spojit. :-)

Nahlásit jako SPAM
IP: 31.30.174.–
MilanL+1
Grafoman
20. 8. 2020   #6
-
0
-

#5 fix
vydrž až budu doma udělám si tam testovací db, abych ten dotaz nejdřív vyzkoušel než ti ho sem hodím, jinak to bude hodně podobné.

Nahlásit jako SPAM
IP: 91.139.9.–
peter
~ Anonymní uživatel
4016 příspěvků
20. 8. 2020   #7
-
0
-

   


    Titanic               | historický
    Machři               | komedie;rodinný
    Indiana Jones    | dobrodružný
    Harry potter       | fantasy;mysteriozni

SELECT 
    nazev_filmu,
    GROUP_CONCAT(nazev_zanru)
FROM 
    zanry 
    LEFT join filmy ...
GROUP BY (id_film)

Spravnou syntaxy si dohledas v dokumentaci nebo googlem.
Bez grupu ti to vypise tabulku zanz + film a chces ty skupiny vytvorip pro stejne filmy.

Nahlásit jako SPAM
IP: 2001:718:2601:258:4dbc:3838:5a25:f2e0...–
MilanL+1
Grafoman
21. 8. 2020   #8
-
0
-

#7 peter
taky nebude problém to otočit pro druhou funkci pro výpis filmů které mají daný žánr

žánr | film1, film2, ....filmX

Nahlásit jako SPAM
IP: 185.112.167.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 4 hosté

Podobná vlákna

Select tento týden — založil Luky

Jak udělat tento program? — založil Aleš

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý