从选择mysql中排除id

时间:2013-02-02 14:27:58

标签: php 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

2 个答案:

答案 0 :(得分:0)

加入后哪里应该来。 mysql select的链接 此外,我不知道“数据表”的实现,但我认为在哪里方法缺少单引号。

我查看了“codeigniter”示例,并通过示例应该是:

$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');

答案 1 :(得分:0)

假设你的引号等等正确...其中的位看起来错误使用“”表示完整的地方sql和字段值使用单引号...也因为id是一个整数而不需要它周围的引号

由于您按产品ID进行分组,即使产品位于仓库ID 2中,如果该产品存在于任何其他仓库中,也不会将其排除

因此,如果您要排除仓库ID 2中的所有产品,则应在where子句中使用“product_id not in”(从* products = id = 2的产品中选择*)行中的子选项“< / p>

很多取决于你真正想要实现的目标