Autor Zpráva
caradoc
Profil *
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
a ten vztah mezi autorem a vydavatelem je uložen kde?
caradoc
Profil *
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
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, ...)
Toto téma je uzamčeno. Odpověď nelze zaslat.

0