Autor | Zpráva | ||
---|---|---|---|
Pavlii Profil * |
#1 · Zasláno: 15. 2. 2011, 16:18:08
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 |
#2 · Zasláno: 15. 2. 2011, 16:33:42
|
||
Pavlii Profil * |
#3 · Zasláno: 15. 2. 2011, 18:35:38
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 * |
#4 · Zasláno: 15. 2. 2011, 22:36:55
A jste si jistý, že ta fotka neodpovídá u všech 10 výstupů zadaným podmínkám?
|
||
Pavlii Profil * |
#5 · Zasláno: 16. 2. 2011, 09:26:01
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.
|
||
Časová prodleva: 13 let
|
0