Autor | Zpráva | ||
---|---|---|---|
caradoc Profil * |
#1 · Zasláno: 31. 10. 2006, 22:15:07
ahoj,
potřebuji poradit jak načíst data ze dvou tabulek 1 tabulka se jmenuje autor a v ní jsou sloupce autor a kniha 2 tabulka se jmenuje vydavatel a jsou v ní sloupce vydavatel potřebuji udělat select aby výsledek byl takový že když v 1 tabulce bude slovo ve sloupci SPISOVATEL "Jules Verne" tak z 2 tabulky aby se načetl vydavatel. např "Albatros",... jde to nějak zařídit,?? Caradoc |
||
nightfish Profil |
#2 · Zasláno: 31. 10. 2006, 22:20:26
a ten vztah mezi autorem a vydavatelem je uložen kde?
|
||
caradoc Profil * |
#3 · Zasláno: 31. 10. 2006, 22:25:05
napsal jsem to zkráceně, v každě tabuly je sloupec kde má DB poznat ke komu patří jaký vydavatel, mám knihy edice Knihy Odvahy a Dobrodružství a nechce se mi všude psát jednoho vydavatele, byl by to 206x stejné slovo v DB tak to chci udělat pomocí názvu Autorů, těch je kolem 50ti, s relacemi nemám žádné zkušenosti,..
|
||
harmonie Profil |
#4 · Zasláno: 31. 10. 2006, 22:52:46 · Upravil/a: harmonie
Asi takhle?
create table autor ( idautor integer(10) unsigned notnull, autor varchar(20), zivotopis varchar(255), ... primarykey (idautor) ); create table knihy ( idkniha integer(10) unsigned notnull, nazev varchar(20), idautor integer(10) unsigned notnull, idnakladatel integer(10) unsigned notnull, ... primarykey (idkniha), index (idautor), index (idvydavatel) ); create table vydavatel ( idvydavatel integer(10) unsigned notnull, vydavatel varchar(20), ... primaryindex (idvydavatel) ); A pak vlastní select je : select autor, zivotopis, nazev, vydavatel from autor, kniha, vydavatel where autor.idautor = kniha.idautor and kniha.idvydavatel = vydavatel.idvydavatel; Použil jsem v každé tabulce "nepravý" klíč. Kdybych svazoval tabulky přímo jménem (knihy, autora, vydavatele), tak musím dávat velký pozor na změnu (velikosti písmen, interpunkce,...). Takhle ta vazba je jednou provedena a klidně mohu pozměnit jméno autora (opravit chybu, přidat titul, ...) |
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0