【发布时间】:2014-11-27 11:10:56
【问题描述】:
我正在尝试将 SQL 查询转换为 Doctrine QueryBuilder 查询。 SQL 查询在我的 SQL 控制台 (Workbench) 中按我想要的方式工作。但是当我将我的 SQl 查询转换为 Doctrine 'Query' 时,我收到一个错误,我无法理解.....
纯SQL查询:
select
CONCAT('news/', feeds.slug, '/', articles.slug) as 'URL'
from article_feeds
left join articles on article_feeds.article_id=articles.id
left join feeds on article_feeds.feed_id=feeds.id
教义查询:
$stmt = $this->db->createQueryBuilder()
->select('faf.article_id', 'faf.feeds_id')
->addSelect('f.slug AS feedSlug')
->addSelect('a.slug AS articleSlug')
->addSelect("Group_CONCAT(DISTINCT CONCAT(feedSlug, '/' , articleSlug) SEPARATOR ',' ) AS url")
->from('article_feeds', 'faf')
->leftJoin('a', 'article_feeds', 'faf', 'af.article_id = a.id')
->leftJoin('f', 'article_feeds', 'faf', 'af.article_id = f.id');
$this->urls = $stmt->execute()->fetch(\PDO::FETCH_OBJ);
错误:
{
code: 0,
message: "The given alias 'articles' is not part of any FROM or JOIN clause table. The currently registered aliases are: faf."
}
据我了解,我的 leftJoin 存在问题,但是为什么以及是什么,我该如何解决......?
【问题讨论】:
标签: php mysql symfony doctrine-orm