我有以下SQL语句:
SELECT * FROM image
LEFT JOIN history
ON (image.id = history.image_id
AND history.user_id = 1
WHERE active = 1
查询的目的是查找Image表中的所有记录(标记为“active”),并且只查找History表中引用当前用户的那些记录。表之间存在n-to-m关系,可能存在具有相同image_id的记录,但对于其他user_id。我不希望包含这些记录。
我正在尝试使用Propel 1.6实现它,所以我认为代码应该是这样的:
ImageQuery::create()
->filterByActive( 1 )
->leftJoinHistory('History.Image')
->addJoinCondition('History.Image', 'History.user_id = ?', 1)
->find();
但它失败了
无法确定要绑定到子句'History.user_id =?'
中的参数的列
问题出在哪里?
答案 0 :(得分:0)
尝试:
ImageQuery::create()
->filterByActive( 1 )
->leftJoinHistory()
->addJoinCondition('History', 'History.user_id = ?', 1)
->find();
我不知道您为什么尝试加入类似History.Image
的内容,因为这种关系似乎是Image.History
。