2013-02-02 95 views
0

我想從表中排除一個ID,但似乎沒有得到這個工作。從選擇mysql中排除ID

這是從2個表中獲取數據的CodeIgniter數據表。

我想從warehouse_id排除數據2

function getdata() 
    { 
      $this->load->library('datatables'); 
      $this->datatables->select("products.id as productid, image, code, name, size, color, type, gender, price, (CASE WHEN sum(warehouses_products.quantity) Is Null THEN 0 ELSE sum(warehouses_products.quantity) END) as totalQuantity"); 
      $this->datatables->from('products'); 
      $this->datatables->join('warehouses_products', 'products.id=warehouses_products.product_id', 'left'); 
      $this->datatables->where('warehouses_products.warehouse_id !=', '2'); 
      $this->datatables->group_by("productid"); 

     echo $this->datatables->generate(); 
     } 

的錯誤是:

Fatal error: Call to a member function num_rows() on a non-object in /system/database/DB_active_rec.php on line 990 
+1

[CI用戶指南](http://ellislab.com/codeigniter/user-guide/database/active_record.html#select)'$ this-> db-> where('name!= ',$ name);' –

回答

0

應該在哪裏進來後加入。 鏈接爲mysql select
另外,我不知道「數據表」的實現,但我認爲有單引號缺少where方法。

我已經考慮「笨」的例子,並沒有如它應該是:

$this->db->where('name', $name); 
$this->db->where('email', $email); 

Custom key or value method 

$this->db->where('name !=', $name); 
// Produces WHERE 'name' != '$name' 

爲此你在其中方法應該是

$this->datatables->where('warehouses_products.warehouse_id !=', '2'); 
+0

我加了引號,但可能是不正確的寫引號......謝謝 – Dario

+0

沒有結果,加上這一行結果是空的。 – Dario

+0

@Dario,是否有機會看到您正在使用的當前代碼? –

0

假設你有你的報價和等正確...在哪裏看起來不正確使用「」爲完整的地方sql和字段值使用單引號...也因爲id是一個整數不真的需要引號周圍。

既然你是即使產品是在倉庫ID 2,如果該產品在任何其他倉庫存在

所以如果要排除所有處於產品也不會被排除產品ID分組倉庫ID 2,你應該使用在where子句的東西沿着線的其中一個子查詢「中的product_id沒有(SELECT * FROM產品,其中倉庫= ID = 2)」

很多取決於你真正想實現