2014-03-14 83 views
-1

當我運行Product.php這是模型文件時出現此錯誤,並且出現此錯誤CDbCommand未能執行SQL語句:SQLSTATE [42S22]:未找到列:1054'where子句'中的未知列'product_profile.price'

CDbCommand failed to execute the SQL statement: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'product_profile.price' in 'where clause'. The SQL statement executed was: SELECT COUNT(*) FROM product t INNER JOIN product ON product_profile.product_id = t.product_id WHERE product_profile.price >=0 AND product_profile.price <=100

查詢的代碼如下

if (!empty($_POST['price'])) { 
    $price = explode(",", $_POST['price']); 
    $criteria = new CDbCriteria; 
    $criteria->select = 'product_profile.price,product_profile.product_id'; 
    $criteria->join.='INNER JOIN product ON product_profile.product_id = t.product_id'; 
    $criteria->condition = " product_profile.price BETWEEN 1 AND 100"; 
    // $criteria->condition = 'product_profile.price >=0 AND product_profile.price <=100'; 
    $criteria->addInCondition("product_profile.price",$price); 
} 
+0

和你的問題是什麼? – 2014-03-14 07:16:17

+0

@Gumbo你在哪裏更快的代碼;) – 2014-03-14 07:19:04

回答

3

要加入productproduct表,因此product_profile沒有找到

正確的SQL應該是

SELECT COUNT(*) 
FROM product t 
INNER JOIN product_profile ON product_profile.product_id = t.product_id 
WHERE 
product_profile.price >=0 AND product_profile.price <=100 

所以下面

$criteria->join.='INNER JOIN product ON product_profile.product_id = t.product_id'; 

應該

$criteria->join.='INNER JOIN product_profile ON product_profile.product_id = t.product_id'; 
0

你需要通過Yii ORM改變您的SQL語法。你終於查詢應該是這樣的:

SELECT COUNT(*) FROM product t 
INNER JOIN product_profile 
ON product_profile.product_id = t.product_id 
WHERE product_profile.price >=0 AND product_profile.price <=100 

這意味着吳丹你需要加入product_profile表,而不是產品表

+0

thanku所有我從這個錯誤得到騎,但它沒有顯示我這個價格範圍內的任何產品 – user2386041

0

如果瑤池等欄目,但一個 - 不是。 這裏是代碼。

$pages = Yii::app()->db->createCommand() 
      ->select('*') 
      ->from('sk_subj_img_links') 
      ->where('subj_clas=:subj', array(':subj'=>'math-1')) 
      ->queryAll(); 

然後我得到錯誤:CDbCommand未能執行SQL語句:在 'where子句' 但是,如果這個代碼

$pages = Yii::app()->db->createCommand() 
      ->select('*') 
      ->from('sk_subj_img_links') 
      ->where('id=:tid', array(':tid'=>’1')) 
      ->queryAll(); 
1054未知列 'subj_clas':SQLSTATE [42S22]:列未找到
  • 然後寫作 表中的列sk_subj_img_links:id,link,subj-clas。 當找到鏈接列 - 也適用。
相關問題