Php 如何在查询中添加别名

Php 如何在查询中添加别名,php,join,symfony1,alias,propel,Php,Join,Symfony1,Alias,Propel,在我的symfony 1.4项目中,我有一个查询,其中两个连接到同一个表(不同的外键): 我得到一个错误: SQLSTATE[42000]:语法错误或访问冲突:1066非唯一表/别名:“article\u category” 如何将别名添加到此联接?注意:我使用的是Propel 1.6 将参数传递给join方法就足够了 return ArticleQuery::create(null,$criteria) ->joinWithArticleCategoryRelatedBy

在我的symfony 1.4项目中,我有一个查询,其中两个连接到同一个表(不同的外键):

我得到一个错误: SQLSTATE[42000]:语法错误或访问冲突:1066非唯一表/别名:“article\u category”

如何将别名添加到此联接?

注意:我使用的是Propel 1.6

将参数传递给join方法就足够了

return ArticleQuery::create(null,$criteria)
        ->joinWithArticleCategoryRelatedByNewsCategoryId('news')
        ->joinWithArticleCategoryRelatedByHelpCategoryId('help');
查看生成的BaseArticleQuery.php,查看为您生成了哪些方法。我的一个联接方法如下所示:

/**
 * Adds a JOIN clause to the query using the ArticleKeyword relation
 *
 * @param     string $relationAlias optional alias for the relation
 * @param     string $joinType Accepted values are null, 'left join', 'right join', 'inner join'
 *
 * @return    KeywordQuery The current query, for fluid interface
 */
public function joinArticleKeyword($relationAlias = null, $joinType = Criteria::LEFT_JOIN)
Propel的优点之一是,几乎所有东西都有一个具体的方法。因此,如果您有支持代码完成的IDE,您可以收到方法支持哪些参数的提示。

这对我很有用:

return ArticleQuery::create()
    ->joinWith('ArticleCategoryRelatedByNewsCategoryId a', Criteria::LEFT_JOIN)
    ->joinWith('ArticleCategoryRelatedByHelpCategoryId b', Criteria::LEFT_JOIN);

在其他情况下-您应该尝试升级您的推进;)

这个问题仍然存在,这个解决方案对我仍然有效。我正在跟踪
~2。0@dev
版本和在此提交时:
return ArticleQuery::create()
    ->joinWith('ArticleCategoryRelatedByNewsCategoryId a', Criteria::LEFT_JOIN)
    ->joinWith('ArticleCategoryRelatedByHelpCategoryId b', Criteria::LEFT_JOIN);