php - 如何连接 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
推荐阅读
- python - 如何打印带有统计信息的numpy数组
- javascript - 当用户在rails上重新加载页面时如何随机加载图像
- javascript - 组件内部函数中的状态数组为空
- c# - Asp.Net:使用 ListView 控件创建自定义 CheckBoxList
- python - 触摸底部时pygame无法阻止图像移出屏幕
- django - 从具有多个外键的模型到另一个表的同一列实现group by
- python - 使用 python pandas 从 excel 中确定总运行时间
- c++ - 浮点数和整数之间的不等式比较
- php - Codeigniter无法显示图像
- templates - 具有相同返回类型和相同参数的模板函数