0

我有一个使用 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 时感觉有点不对劲(然后再次......)。

4

1 回答 1

0

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

->addJoin(Table1TableMap::COL_A, Table2TableMap::COL_B, Criteria::JOIN_TYPE)
// INNER_JOIN, INNER_JOIN, etc
于 2019-09-18T15:53:09.387 回答