provazani tabulek InnoDB parent->child

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
vosy
Člen | 532
+
0
-

ahoj mam dve tabulky

CREATE TABLE IF NOT EXISTS `firmy_KontaktniOsoby` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `firmy_id` int(11) DEFAULT NULL,
  `primarniOsoba` varchar(10) COLLATE utf8_czech_ci DEFAULT NULL,
  `jmeno` varchar(100) COLLATE utf8_czech_ci DEFAULT NULL,
  `funkce` varchar(100) COLLATE utf8_czech_ci DEFAULT NULL,
  `titul` varchar(200) COLLATE utf8_czech_ci NOT NULL,
  PRIMARY KEY (`id`),
  KEY `firmy_id` (`firmy_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci AUTO_INCREMENT=12130 ;

ALTER TABLE `firmy_KontaktniOsoby`
  ADD CONSTRAINT `firmy_kontaktniosoby_ibfk_1` FOREIGN KEY (`firmy_id`) REFERENCES `firmy` (`id`) ON DELETE SET NULL ON UPDATE CASCADE;

CREATE TABLE IF NOT EXISTS `firmy_KontaktniOsoby_email` (
  `firmy_KontaktniOsoby_id` int(11) DEFAULT NULL,
  `email` varchar(100) COLLATE utf8_czech_ci DEFAULT NULL,
  KEY `firmy_KontaktniOsoby_id` (`firmy_KontaktniOsoby_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;

ALTER TABLE `firmy_KontaktniOsoby_email`
  ADD CONSTRAINT `firmy_kontaktniosoby_email_ibfk_1` FOREIGN KEY (`firmy_KontaktniOsoby_id`) REFERENCES `firmy_KontaktniOsoby` (`id`) ON DELETE SET NULL ON UPDATE CASCADE;

pomoci

$r = $this->db->table(\Glb::$TABS['firmy_KontaktniOsoby'])
                    ->where('firmy_id', $idFirmy)
                    ->order('jmeno ASC');

selektuju seznam osob dane firmy

mohu se z tohoto seznamu nejak dostat k emailu dane osoby v tabulce „firmy_KontaktniOsoby_email“

s4muel
Člen | 92
+
0
-

skus takto:

foreach($r as $kontaktna_osoba) {
	$vsetky_emaily_kontaktnej_osoby = $kontaktna_osoba->related('firmy_KontaktniOsoby_email');
}

viac info: dokumentacia

Editoval s4muel (26. 1. 2014 13:02)