sql ako na spajanie tabuliek?

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

Nechal som sa inspirovat relacnou strukturou podla tochto:
http://blog.voracek.net/…rochu-jinak/

viete mi niekto porasit ako by som vedel urobit toto???

SELECT c.*, cc.* FROM category c
  JOIN category_closure cc
    ON (c.category_id = cc.descendant);



 return $this->database->table('category');   ?????

Editoval duskohu (16. 2. 2012 18:56)

OK3
Člen | 91
+
0
-

Syntax přes API nevím, ale vždycky můžeš zavolat:

$this->database->exec('SELECT c.*, cc.* FROM category c...');
MW
Člen | 626
+
0
-
$database->table('category')->select('category.*, dalsi_tabulka.*');

ovsem takto to pozaduje aby byli dobre klice.. tzn, ze v hlavni tabulce bude napr. dalsi_tabulka_id (xxxxx_id).

I toto lze vsak zmenit, ale zatim jsem to neresil a delal pres

$database->query(...);

Editoval MW (17. 2. 2012 12:59)

Jan Voráček
Člen | 90
+
0
-

Řešit closure table přes NotORM část Nette Database mi vůbec nepřijde jako dobrý nápad. U složitějších operací bys stejně tvrdě narazil. Osobně se docela těším na HosipLanovo rozšíření Doctrine v Kdyby.

krucinal
Člen | 38
+
0
-

Ja zrovna s joinem zapasim. Z jedne tabulky do druhe mi to join udela, ale z druhe do treti uz ne. To je feature nebo chyba?

duskohu
Člen | 778
+
0
-

Jan Voráček napsal(a):

Řešit closure table přes NotORM část Nette Database mi vůbec nepřijde jako dobrý nápad. U složitějších operací bys stejně tvrdě narazil. Osobně se docela těším na HosipLanovo rozšíření Doctrine v Kdyby.

A co potom odporucate na Stromovu strukturu????

Jan Voráček
Člen | 90
+
0
-

Princip closure table je dobrý, jen se nedá řešit pomocí NotORM. Pokud ti nevadí psát si celé dotazy, můžeš použít Nette Database tak, jak tu radí kolegové.

Pomocí NotORM zápisu se dá využívat traverzování kolem stromu nebo odkaz na rodiče, ale u toho pozor na hromadu dotazů při získávání velké části stromu. Ostatně všechny tyhle postupy jsou dostatečně popsané všude možně ;)

Editoval Jan Voráček (2. 3. 2012 10:18)