Autor | Zpráva | ||
---|---|---|---|
bob99 Profil |
#1 · Zasláno: 19. 3. 2013, 11:18:15
Zdravím,
mám tyto tabulky: CREATE TABLE `knihovnacu` ( `id` int(11) NOT NULL AUTO_INCREMENT, `previous_id` int(11) DEFAULT NULL, `avis` int(11) DEFAULT NULL, `nazev` char(100) COLLATE utf8_czech_ci DEFAULT NULL, `autor` char(100) COLLATE utf8_czech_ci DEFAULT NULL, `cena` decimal(10,2) DEFAULT NULL, `stav` char(3) COLLATE utf8_czech_ci DEFAULT NULL, ) ENGINE=MyISAM AUTO_INCREMENT=101 DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci; CREATE TABLE `knihovnacu_cu` ( `id_cu` int(11) NOT NULL AUTO_INCREMENT, `parentid` int(5) DEFAULT NULL, `hloubka` int(5) DEFAULT NULL, `cu` char(50) COLLATE utf8_czech_ci DEFAULT NULL, `cislo_cu` char(4) COLLATE utf8_czech_ci DEFAULT NULL, `sort` int(3) DEFAULT NULL, PRIMARY KEY (`id_cu`) ) ENGINE=MyISAM AUTO_INCREMENT=25 DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci; /*Table structure for table `knihovnacu_lidi` */ CREATE TABLE `knihovnacu_lidi` ( `id_lidi` int(10) unsigned NOT NULL AUTO_INCREMENT, `oscislo` varchar(30) COLLATE utf8_czech_ci DEFAULT NULL, `jmeno_single` varchar(50) COLLATE utf8_czech_ci DEFAULT NULL, `prijmeni_single` varchar(50) COLLATE utf8_czech_ci DEFAULT NULL, `cu_lidi` int(3) DEFAULT NULL, `oddeleni_lidi` int(3) DEFAULT NULL, `stav` int(1) DEFAULT '1', PRIMARY KEY (`id_lidi`), KEY `oscislo` (`oscislo`), KEY `cu` (`cu_lidi`), KEY `stav` (`stav`) ) ENGINE=MyISAM AUTO_INCREMENT=464 DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci; CREATE TABLE `knihovnacu_prideleni` ( `id` int(11) NOT NULL AUTO_INCREMENT, `id_prideleni` int(9) DEFAULT NULL, `previous_id` int(11) DEFAULT NULL, `kniha_id` int(9) DEFAULT NULL, `jmeno_id_prideleni` int(9) DEFAULT NULL, `urad_prideleni` int(3) DEFAULT NULL, `oddeleni_prideleni` int(9) DEFAULT NULL, `budova_prideleni` char(50) COLLATE utf8_czech_ci DEFAULT NULL, `mistnost_prideleni` char(50) COLLATE utf8_czech_ci DEFAULT NULL, `poznamka_prideleni` text COLLATE utf8_czech_ci, `predani_datum` date DEFAULT NULL, `vraceni_datum` date DEFAULT NULL, `stav` char(3) COLLATE utf8_czech_ci DEFAULT NULL, PRIMARY KEY (`id`), KEY `cisinve` (`jmeno_id_prideleni`), KEY `predmet` (`urad_prideleni`), KEY `vyrznac` (`oddeleni_prideleni`), KEY `cenapor` (`budova_prideleni`), KEY `rok_vyroby` (`mistnost_prideleni`), KEY `stav` (`stav`) ) ENGINE=MyISAM AUTO_INCREMENT=49 DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci; CREATE TABLE `knihovnacu_vypujcky` ( `id_vypujcky` int(11) NOT NULL AUTO_INCREMENT, `previous_id` int(11) DEFAULT NULL, `kniha_id` int(9) DEFAULT NULL, `id_prideleno` int(9) DEFAULT NULL, `jmeno_id_vypujcky` int(9) DEFAULT NULL, `urad_vypujcky` int(3) DEFAULT NULL, `oddeleni_vypujcky` int(9) DEFAULT NULL, `budova_vypujcky` char(50) COLLATE utf8_czech_ci DEFAULT NULL, `mistnost_vypujcky` char(50) COLLATE utf8_czech_ci DEFAULT NULL, `poznamka_vypujcky` text COLLATE utf8_czech_ci, `vypujceni_datum` date DEFAULT NULL, `vracenizpet_datum` date DEFAULT NULL, `stav` char(3) COLLATE utf8_czech_ci DEFAULT NULL, PRIMARY KEY (`id_vypujcky`), KEY `cisinve` (`jmeno_id_vypujcky`), KEY `predmet` (`urad_vypujcky`), KEY `vyrznac` (`oddeleni_vypujcky`), KEY `cenapor` (`budova_vypujcky`), KEY `rok_vyroby` (`mistnost_vypujcky`), KEY `stav` (`stav`) ) ENGINE=MyISAM AUTO_INCREMENT=26 DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci; ...,které bych potřeboval propojit jedním select dotazem. Klasicky to vypadá takhle: SELECT knihovnacu.id AS id_knihovna, knihovnacu.*, knihovnacu_prideleni.*, knihovnacu_lidi.*, knihovnacu_vypujcky.* FROM (knihovnacu) LEFT JOIN knihovnacu_prideleni ON knihovnacu.id = knihovnacu_prideleni.kniha_id LEFT JOIN knihovnacu_lidi ON knihovnacu_prideleni.jmeno_id_prideleni = knihovnacu_lidi.id_lidi LEFT JOIN knihovnacu_vypujcky ON knihovnacu.id = knihovnacu_vypujcky.kniha_id ORDER BY nazev Jak ale přidat znovu "duplicitní" pole z tabulky knihovnacu_lidi svázané k tabulce knihovnacu_vypujcky, které jsou svazáné k tabulce knihovnacu_prideleni? Ve výsledku potřebuji zobrazit pole oscislo k tabulce knihovnacu_prideleni i knihovnacu_vypujcky. Díky za rady |
||
Kajman Profil |
Uděláte další join s tou samou tabulkou, ale dáte jí jedinečný alias, aby to fungovalo.
LEFT JOIN knihovnacu_lidi lidiv ON knihovnacu_vypujcky.jmeno_id_vypujcky = lidiv.id_lidi |
||
bob99 Profil |
#3 · Zasláno: 19. 3. 2013, 13:18:50
Kajman:
Díky funguje :-) |
||
Časová prodleva: 13 let
|
0