Autor Zpráva
Pavlii
Profil *
Můj dotaz se týká spojení dvou MySQL tabulek jen v případě, že ve druhé bude potřebná informace.
Mám 2 tabulky:

CREATE TABLE `zabery` (
  `id` int(6) NOT NULL auto_increment,
  `projekt` int(5) NOT NULL,
  `povoleni` set('a','n') NOT NULL,
  `poradi` int(6) NOT NULL,
  `epizoda` varchar(50) NOT NULL,
  `klapka` varchar(50) NOT NULL,
  `rec_tc` varchar(20) NOT NULL,
  `popis` varchar(200) NOT NULL,
  `check` set('a','n') NOT NULL,
  `hodnoceni` set('1','2','3') NOT NULL,
  `nat_den` int(5) NOT NULL,
  `prostredi` varchar(60) NOT NULL,
  `datum` varchar(10) NOT NULL,
  `role` varchar(20) NOT NULL,
  `zdroj` varchar(50) NOT NULL,
  `format` varchar(50) NOT NULL,
  `asyn_tc` set('a','n') NOT NULL,
  `reel` int(3) NOT NULL,
  `ciszab` varchar(15) NOT NULL,
  `zaber_ozn` varchar(10) NOT NULL,
  `in_tc` int(6) NOT NULL,
  `out_tc` int(6) NOT NULL,
  `stav` varchar(50) NOT NULL,
  `fps` varchar(5) NOT NULL,
  `vytvoreno` varchar(16) NOT NULL,
  `zadal` varchar(50) NOT NULL,
  `zmena` varchar(16) NOT NULL,
  `zmenil` varchar(50) NOT NULL,
  `znacka` varchar(100) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=239 ;

a tabulku

CREATE TABLE `soubory` (
  `ident` int(6) NOT NULL auto_increment,
  `projekt` int(6) NOT NULL,
  `zaber` int(6) NOT NULL,
  `poradi` int(6) NOT NULL,
  `nazev` varchar(100) NOT NULL,
  `pripona` varchar(10) NOT NULL,
  `umisteni` varchar(20) NOT NULL,
  `adresar` varchar(100) NOT NULL,
  KEY `id` (`ident`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=101 ;


s tím, že z tabulky zabery potřebuji natáhnout všechna data z řádku a zárověň z tabulky soubory pouze ten řádek, který má stejné číslo projektu, záběru a v umístění obsahuje "title". Z tabulky zabery se musí natáhnout každý řádek bez ohledu na to, jestli v tabulce soubory bude nejaky titulni soubor. Prozatim jsem vyzkousel jen

SELECT * FROM zabery LEFT JOIN soubory ON soubory.zaber = zabery.ciszab WHERE soubory.umisteni = 'title'


ale stále to nedělá to, co bych chtěl :-( Prosím poraďte mi.
TomášK
Profil
viz http://diskuse.jakpsatweb.cz/?action=vthread&forum=28&topic=121782
Pavlii
Profil *
Tak právě na tohle jsem se díval a pak zkusil zápis
SELECT * FROM zabery LEFT JOIN soubory ON soubory.projekt = zabery.projekt
AND soubory.zaber = zabery.ciszab
AND soubory.umisteni = 'title' WHERE zabery.povoleni = 'a' AND zabery.projekt = '1'


Jenže ve výstupu mám u každých 10-ti výstupů stejný soubor (v mém případě jde o fotku)... prostě nevím kde je chyba. Mám zápis správně?
Kajman_
Profil *
A jste si jistý, že ta fotka neodpovídá u všech 10 výstupů zadaným podmínkám?
Pavlii
Profil *
Již jsem dohledal chybu: do sloupce ciszab v tabulce zabery se mi omylem zapsaly špatné hodnoty při importu dat do DB. Poslední zápis tedy funguje tak jak má. Děkuji za pomoc.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: