我想从表中排除一个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
答案 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>
很多取决于你真正想要实现的目标