Autor | Zpráva | ||
---|---|---|---|
quickspider Profil |
#1 · Zasláno: 26. 4. 2011, 11:46:04
Dobrý den,
mám tabulky hraje_jméno herce, které obsahují sloupce de (původní název dílu), postava, funkce... tabulka díly obsahuje sloupce de, rada... a pak mám tabulku postava se sloupci postava, jméno, příjmení... Nedaří se mi zajistit, aby se vypsaly jména a příjmení postav které hrají například v řadě 1 select select dily.rada, hraje_frank.de, hraje_frank.postava as postava, hraje_frank.funkce, hraje_ingo.de, hraje_ingo.postava as postava, hraje_ingo.funkce from hraje_frank, hraje_ingo join dily using (de) where dily.rada=01 spojí tabulky dohromady podle řady 01 select postava from postava nedaří mi ale oba příkazy spojit select select dily.rada, hraje_frank.de, hraje_frank.postava as postava, hraje_frank.funkce, hraje_ingo.de, hraje_ingo.postava as postava, hraje_ingo.funkce from hraje_frank, hraje_ingo join dily using (de) where dily.rada=01 and postava = (select postava from postava) děkuji |
||
Stano Profil * |
#2 · Zasláno: 26. 4. 2011, 11:48:39
typujem že potrebuješ http://www.ageent.ru/sk/sql-left-join.html
|
||
quickspider Profil |
#3 · Zasláno: 26. 4. 2011, 12:07:57
kdyby se jednalo o spojení 2 tabulek, tak si s tím poradím. Postav je cca 10 a to už mi nejde. Myslím si že řešení je pomocí subselektu, protože spojím tabulky hraje_jmeno herce a potom je potřebuju spárovat s jmény z tabulky postav.
|
||
tatyalien Profil |
#4 · Zasláno: 26. 4. 2011, 12:14:13
Píšu to z hlavy:
nevím jak máš propojené tabulky stejnejma datama (id), tak si tam dodej misto .nazev_sloupce správné názvy: select dily.rada, hraje_frank.de, hraje_frank.postava as postava, hraje_frank.funkce, hraje_ingo.de, hraje_ingo.postava as postava, hraje_ingo.funkce from hraje_frank left join on (hraje.fank = hraje_ingo.nazev_sloupce) left join dily on (dily.nazev_sloupce = hraje.nazev_sloupce) where dily.rada=01 |
||
Tori Profil |
#5 · Zasláno: 26. 4. 2011, 12:14:59
quickspider:
To máte pro každého herce extra tabulku?? Spíš bych dala do jedné tabulky všechny herce, kteří se v tom seriálu kdy vyskytli a pak to propojila vazební tabulkou s postavami a díly (tabulka 'ucinkovali': id_herce, id_postavy, id_dilu). Líp se s takovou databází bude pracovat, nemusíte se pak snažit navázat obsah sloupce na část názvu jiné tabulky. |
||
quickspider Profil |
#6 · Zasláno: 26. 4. 2011, 12:33:15 · Upravil/a: quickspider
Tori:
přišlo mi to úspornější než mít v jedné tabulce 10x název dílu a k tomu postavu. I když každá větší role nehraje v každém dílu, tak při 220 dílech by bylo cca 1800 záznamů v tabulce. To mi přišlo jako hodně. Předchozí variantu jsem měl rozdělenou podle sérií a v nich jednotlivé herce a díly - tam nastával obdobný problém s výpisem dílů ve kterých hrála určitá postava. |
||
quickspider Profil |
#7 · Zasláno: 26. 4. 2011, 12:40:39
tatyalien:
tak jsem dopravil názvy, ale hlásí to stejně jako v 1. příspěvku chybný sql syntax |
||
Tori Profil |
#8 · Zasláno: 26. 4. 2011, 12:58:54
quickspider:
„přišlo mi to úspornější než mít v jedné tabulce 10x název dílu a k tomu postavu“ No nevím, pořád mi to připadá jako chybný návrh db. V té vazební tabulce by přece byla jen ID (postavy, herce, epizody) a jeden primární klíč přes všechny tři sloupce, takhle máte o x tabulek a x indexů víc (a ještě s každou novou postavou budete muset přepisovat sql dotazy). |
||
quickspider Profil |
#9 · Zasláno: 26. 4. 2011, 13:30:21
Tori:
máte pravdu když budou všude ID a ne celý název epizody, tak to nebude tak rozsáhlý. akorát dá práci zaměnit názvy za schodná ID jako u dílů. Děkuju |
||
Časová prodleva: 13 let
|
0