NDB UNION, alebo ako na to?

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

Caute, mam taky select kde mam union, prepokladam ze NDB union nema, takze som musel pouzit connection->query(),
Len mam problem potrebujem vykonavat akcie, ako order, where, limit, a to sa to neda, viete mi poradit ako by som vedel toto riesit?

(select
importtransform.foreignId,
importtransform.localId,
importtransform.tableName,

category.id as extId,
category.name as extName
from importtransform
left JOIN category ON category.id = importtransform.localId
WHERE importtransform.tableName ='category')
UNION
(select
importtransform.foreignId,
importtransform.localId,
importtransform.tableName,

buildingtype.id as extId,
buildingtype.name as extName
from importtransform
left JOIN buildingtype ON buildingtype.id = importtransform.localId
WHERE importtransform.tableName ='buildingtype')
duke
Člen | 650
+
0
-

Možná by šlo vytvořit view v databázi (jako union těch 2 tabulek) a dotazovat se běžným způsobem nad ním.

petr.pavel
Člen | 535
+
0
-

Nebo můžeš místo NDB používat původní NotORM, které union má :-)
Jinak taky doporučuju view.

Koukám ještě na ten tvůj dotaz a podle názvů tabulek mi to přijde, že spojuješ jablka s hruškami. category.id/.name má stejný význam/povahu jako buildingtype.id/.name? Možná by to chtělo tabulky pojmenovat vhodněji.

duskohu
Člen | 778
+
0
-

Ono ide o to ze mam tabulky:
category >> id, name
buildingtype >> id, name
.......

a potom jednu tabulku:
importtransform >> id, tableName, localId, .....
data:
1, category, 10
2, buildingtype , 20

a ja potrebujem vytiahnut vsetko z importtransform, kde na zaklade tableName sa pripoji na tabulku a z nej vytiahne name. Trosku komplikovane, ale je to uz tak. :-)