Problem select - back join
- MarekR
- Člen | 17
Zdravim Vas. Mam problem spravit select a bol by som povdacny keby niekto pomohol… Dokumentacku citam ale nechapem :(
SQL:
USERS:
- id
- name
PROJECTS:
- id
- name
- founder_id
PROJECT_USERS:
- id
- user_id
- project_id
A potrebujem spravit select projects podla founder_id + dostat pre kazdy riadok projects vsetkych userov ktory su v danom projekte.
Tiez by ma zaujimalo ako napisem select na projects ktory ma relaciu s users ak v projects nieje nazov stlpca user_id ale founder_id – da sa to?
A este taky detail ako mozem „vykonat“ select v modeli? priklad: $selection = $this->connection->table(‚projects‘); a potom Debugger::dump($selection); lenze v $selection niesu vysledky…
Editoval MarekR (29. 10. 2014 17:14)
- David Matějka
- Moderator | 6445
A potrebujem spravit select projects podla founder_id + dostat pre kazdy riadok projects vsetkych userov ktory su v danom projekte.
$projects = $database->table('projects')->where('founder_id', 1);
foreach($projects as $project) {
foreach($project->related('project_users') as $projectUser) {
echo $projectUser->user->name;
}
}
Tiez by ma zaujimalo ako napisem select na projects ktory ma relaciu s users ak v projects nieje nazov stlpca user_id ale founder_id – da sa to?
nevim, jestli chapu co chces, ale k tomu userovi se dostanes pomoci
$project->founder;
neni totiz dulezity nazev cilove tabulky, ale nazev spojovaciho sloupce, viz doc
A este taky detail ako mozem „vykonat“ select v modeli? priklad: $selection = $this->connection->table(‚projects‘); a potom Debugger::dump($selection); lenze v $selection niesu vysledky…
selection je lazy, aby se k nemu mohly pridat where, order atd. muzes pouzit treba metodu fetchAll, ktera vrati pole se zaznamy