Spojení dvou Selection (nebo spíše sečtení) stejných tabulek v jednu

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

Zdarvím,
prosím o pomoc, asi to nebude nic složitého ale nemůžu to najít.

Potřeboval bych spojit dvě selection (stejných tabulek) v jednu.

Příklad (trošku absurdní, protože se to nechá řešit OR):

$a = $this->connection->table('users')->where('role','admin');
$b = $this->connection->table('users')->where('role','manager');
$selection = ??? ->order('name');

V $selection potřebuju Nette\Database\Selection kde budou sloučené obě tabulky takže výstup bude např.:
id role name
1 admin Alois
5 manager Tomáš
3 admin Vojtěch

Díky za tip

Editoval thm (23. 10. 2013 10:07)

enumag
Člen | 2118
+
0
-
$this->connection->table('users')->where('role', array('admin', 'manager'));
thm
Člen | 149
+
0
-

Díky za odpověď, ale potřebuji trošku něco jiného. Vezmu to obecně.

Mám Database\Selection $a nějaké tabulky A (byly použity where()->where())
Mám Database\Selection $b nějaké tabulky A (byly použity where()->where())

A teď mě zajímá jestli je možné získat Database\Selection $c kde budou všechny záznamy z obou selection $a a $b? (K tomu prvnímu selectu přidat záznamy toho druhého selectu, aby mi z toho vzniknul nový selection)

Editoval thm (23. 10. 2013 11:04)

enumag
Člen | 2118
+
0
-

Nedá, k čemu to potřebuješ? Když posledně někdo něco takového chtěl do datagridu tak jsem mu doporučil AppendIterator. To ale neřeší řazení toho sloučeného výběru. Takže mne napadá jen databázové view a union. Nebo lépe refactoring aby ty data nebyly ve dvou tabulkách a šlo je vybrat jedním dotazem.

Editoval enumag (23. 10. 2013 13:01)

hrach
Člen | 1844
+
0
-

Obecně moc nejde. Union nemame, jde to zrejme napsat pomoci or, ale ten musi byt v jenom where. Dalsi moznosti si vzit vygenerovane dotazy, spojit je unionem a dotazat se pres $connection->query().

enumag
Člen | 2118
+
0
-

@hrach: Je vůbec možné na unionu volat order?

thm
Člen | 149
+
0
-

Díky za odpovědi, tak jsem to nemohl asi najít oprávněně. Ono se to těžko vysvětluje k čemu to potřebuju, jednu selection si získám poměrně složitým dotazem, ale nejde to skloubit do jednoho řádku s tím druhým dotazem, tak mě napadlo, že by něco takového mohlo jít.

Nakonec jsem to vyřešil poměrně jednoduchým předěláním databáze a aplikace, takže už to jde jedním dotazem.

Díky, aspoň vím, že to nejde.