我有一个使用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...)时感觉有点不对。
答案 0 :(得分:0)
由于您尚未在架构中定义关系,因此您需要执行显式联接类型,例如:
->addJoin(Table1TableMap::COL_A, Table2TableMap::COL_B, Criteria::JOIN_TYPE)
// INNER_JOIN, INNER_JOIN, etc