JOIN 2 tabulek, kde prvni tabulka ma vice radku

Piticu
Člen | 93
+
0
-

Ahoj vsem, bojuji se spojenim 2 tabulek. Problem je nasledujici:

  • 2 tabulky: SITES a TEMPLATES

SITES

id
user_id
template_id
.......
  CONSTRAINT `FK_sites_template` FOREIGN KEY (`template_id`) REFERENCES `templates` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,

TEMPLATES

id
title //Tohle potrebuji vytahnout z Templates
....
  • Vyber z tabulky sites vsechny radky ktere patri prihlasenemu uzivateli
SELECT * FROM SITES WHERE user_id = $user_id

Potrebuji k radkum (muze byt jeden nebo vice) pridat sloupec titleTEMPLATES. Zkusil jsem napriklad tohle, ale bez uspechu:

$this->getDatabase()->table('sites')
    ->select('sites.*,templates.title')
    ->where('user_id',$this->getUser()->id)
    ->fetchAll();

nebo

$templates = $this->getDatabase()->table('templates');

bdump($this->getDatabase()->table('sites')
    ->select('sites.*,templates.title')
    ->where('user_id',$this->getUser()->id)
    ->where('template_id',$templates)
    ->fetchAll());

Poradite mi prosim nekdo jak teda na to? Dekuji

Ondřej Kubíček
Člen | 494
+
0
-

a potřebuješ to mít přímo v query?

když pak iteruješ nad těmi výsledky, tak k title se dostaneš přes template, takže např $row->template->title

Piticu
Člen | 93
+
0
-

Ondřej Kubíček napsal(a):

a potřebuješ to mít přímo v query?

když pak iteruješ nad těmi výsledky, tak k title se dostaneš přes template, takže např $row->template->title

Zapomnel jsem dodat ze mi to nefuguje :/

No reference found for $sites->templates

Potrebuji to vypsat v sablone, takze je je mi jedno jak, hlavne aby to fungovalo.

Editoval Piticu (26. 2. 2018 20:34)

Ondřej Kubíček
Člen | 494
+
0
-

to ti musí fungovat

foreach ($this->getDatabase()->table('sites')->fetchAll() as $site){
	echo $site->templates->title;
}
Piticu
Člen | 93
+
0
-

Ondřej Kubíček napsal(a):

to ti musí fungovat

foreach ($this->getDatabase()->table('sites')->fetchAll() as $site){
	echo $site->templates->title;
}
Cannot read an undeclared column 'templates'.

Cizi klic tam je, ze by byl spatne pojmenovan?

EDIT: Probleme vyresen, prejmenoval jsem tabulky na jednotne cislo (SITEa TEMPLATE)

Editoval Piticu (26. 2. 2018 21:40)