2013-05-22 58 views
1

我有以下SQL語句:複雜子句中行走JOIN 1.6

SELECT * FROM image 
LEFT JOIN history 
ON (image.id = history.image_id 
    AND history.user_id = 1 
WHERE active = 1 

查詢的目的是要找到從圖像表中的所有記錄(含旗「活動」),只有那些記錄來自歷史記錄表,指向當前用戶。在這些表之間存在n-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

嘗試:

ImageQuery::create() 
->filterByActive(1) 
->leftJoinHistory() 
->addJoinCondition('History', 'History.user_id = ?', 1) 
->find(); 

我不知道爲什麼你嘗試加入類似History.Image,因爲關係似乎是Image.History代替。

+0

它有幫助。謝謝,j0k! – Pepe