如何在Propel中联接两个未定义外键的表?

时间:2018-10-01 08:38:39

标签: php propel2

我有一个使用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(then again...)时感觉有点不对。

1 个答案:

答案 0 :(得分:0)

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

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