Doctrine DQL složitější SQL dotaz
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- motorcb
- Člen | 552
Zdravím,
mám nálesující dotaz, který mi funguje v SQL:
SELECT p.* FROM player p
LEFT JOIN player_team pt ON pt.player_id = p.id
WHERE p.position = 'brankar' AND pt.end IS NULL
Ale aplikaci mam v Docrine 2 a vše v entitách, přepíšu ho tedy na entitny:
SELECT p FROM App\Model\Entities\Player p
LEFT JOIN App\Model\Entities\PlayerTeam pt ON pt.player = p.id
WHERE p.position = "brankar" AND pt.end IS NULL
Ten mi ale vraci chybu: [Syntax Error] line 0, col 85: Error: Expected Doctrine\ORM\Query\Lexer::T_WITH, got ‚ON‘
Co dělam spatne?
- leninzprahy
- Člen | 150
V tom DQL by neměla být přímo ta joinovaná entita, ale odkaz na ní, viz http://docs.doctrine-project.org/…anguage.html#…
Nevím jak máš v entitě hráče pojmenovaný odkaz na tým(y), ale pokud
by se jmenoval teams
mělo to DQL vypadat asi takto:
SELECT p FROM App\Model\Entities\Player p
LEFT JOIN p.teams pt
WHERE p.position = "brankar" AND pt.end IS NULL