mysql výběr souvisejících sloupců

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

Ahoj,

mám následující sestavu tabulek v db:

DROP TABLE IF EXISTS `articles`;
CREATE TABLE `articles` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(50) NOT NULL,
  `perex` text NOT NULL,
  `text` text NOT NULL,
  `autor` varchar(25) NOT NULL,
  `id_knihy` int(11) NOT NULL,
  `datum` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


DROP TABLE IF EXISTS `books`;
CREATE TABLE `books` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(25) NOT NULL,
  `caption` text NOT NULL,
  `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `autor` varchar(25) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(25) NOT NULL,
  `photo` varchar(50) NOT NULL,
  `caption` text NOT NULL,
  `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

dělám uživatelskej profil a potřebuji vybrat podle uživatele knihu a ke knize přiřadit články, které uživatel publikoval.

Z dokumentace nesjem úplně moudrej, i když bych řekl, že je to jedna z těch lépe popsaných částí.

Myslím, že bych to i rozřešil, ale musím za chvilku do práce a nemám moc čas, dost by s mi to zjednodušilo, kdybych tady našel pár rad jak na to. Četl jsem že se v nette nejoinuje tak jsem zvědav.

Double thanx a zítra nazdar :-).

Mysteria
Člen | 797
+
0
-

Za předpokladu že máš správně nadefinované cizí klíče:

$books = $this->database->table('books')->where('autor', $autorID);
foreach ($books as $book)
	foreach ($book->related('articles') as $article)
		echo 'Kniha ' . $book->title . ', článek: ' . $article->title;
qteck
Člen | 164
+
0
-

no jo, jenže jak to najde spojení mezi: books.id a articles.id_knihy?

Editoval qteck (22. 5. 2014 16:04)

qteck
Člen | 164
+
0
-

ou ony cizí klíče, tak jsem hlupák, je to pro mě nové, díky.