Select z N:M tabuľky, zoskupenie podľa 1 stĺpca a ako druhý stĺpec vrátiť pole (array)
- Lkopo
- Člen | 65
Zdravím,
mám tabuľku user_role
:
| user_id | role_id |
kde role_id
má FK na stĺpec id
tabuľky
role
:
| id | name | level |
user_id
FK nemá, keďže sa odkazuje na usera z inej
databázy.
Čo ale chcem dosiahnúť je, že by som selectom z tabuľky
user_role
vytiahol všetkých userov a zbavil sa duplikátov (group
by) avšak ale potrebujem získať ako druhý stĺpec pole všetkých rolí pre
daného usera.
Príklad takej tabuľky v databáze:
| user_id | role_id |
|---------|---------|
| 1 | 10 |
| 1 | 9 |
| 2 | 9 |
A očakaváná forma výsledku zo selectu:
| user_id | role_id |
|---------|--------------|
| 1 | array(10, 9) |
| 2 | array(9) |
Je možné takéto niečo dosiahnúť cez
Nette\Database\Table\Selection
alebo je nutné robiť 2 osobitné
selekcie – prvá vyberie všetkých userov a druhá k ním vráti výpis
rol? Vopred díky.
Editoval Lkopo (10. 3. 2017 13:05)
- David Matějka
- Moderator | 6445
tak primo pole z db nevratis, ale kdyz jsou to jen takhle ID, tak nebude problem pres group_concat to treba spojit carkoua a v php to explodnout do pole