如何连接 Propel 中两个之间没有定义外键的表?



我有一个使用 Propel 2 的项目,我想在某个字段上加入两个表,但那里没有外键关系。我只想根据该值匹配它们。不幸的是,我无法让它工作,而 Propel 的文档,尽管它试图变得详尽,但仍然缺乏良好的参考。我该怎么做?

我尝试过的:

echo Table1Query::create()
->addJoin(Table1TableMap::COL_A, Table2TableMap::COL_B)
->where('Table2.C=?', 'asd')
->toString();

这在where()部分失败,System error Cannot determine the column to bind to the parameter in clause "Table2.C=?".

我知道我可以获得PDO连接并回落到纯SQL中,这肯定会更容易,但是使用ORM时感觉有点不对劲(然后再次......

您需要执行显式连接类型,因为尚未在架构中定义关系,例如:

->addJoin(Table1TableMap::COL_A, Table2TableMap::COL_B, Criteria::JOIN_TYPE)
// INNER_JOIN, INNER_JOIN, etc

最新更新