这是我的代码片段,使用活动记录来更新item_stock值。 我需要将项目表中的item.SKU作为选择器添加到我的查询中。
$this->db->join('item','item.item_id = items.item_id')
->join('items','items.stock_id = item_stock.stock_id')
->set('item_stock.stock_quantity','item_stock.stock_quantity + $new_qty',FALSE)
->where('item_stock.colour',$color)
->where('item_stock.size',$size)
->where('item.SKU',$SKU)
->update('item_stock');
$query = $this->db->update('item_stock');
由于某种原因,它失去了 JOIN 堆栈。
Error Number: 1054
Unknown column 'item.SKU' in 'where clause'
UPDATE `item_stock` SET `item_stock`.`stock_quantity` = item_stock.stock_quantity + $new_qty WHERE `item_stock`.`colour` = 'Kuning' AND `item_stock`.`size` = 'XL' AND `item`.`SKU` = 'Wooser-01'
Filename: E:\xampp\htdocs\nekogear\system\database\DB_driver.php
Line Number: 330
任何提示如何克服这个问题?谢谢。
* ps =我已尝试 $ this-> db->查询("此处查询代码"),它工作正常,但我想使用活动记录样式来保持一致性。
答案 0 :(得分:0)
叫我傻但是嘿,这是有效的! 我的“解决方案”是在 $ this-> db-> update()
中加入 JOIN$this->db->set('item_stock.stock_quantity','item_stock.stock_quantity + $new_qty',FALSE)
->where('item_stock.colour',$color)
->where('item_stock.size',$size)
->where('item.SKU',$SKU);
$query = $this->db->update('item_stock JOIN items ON items.stock_id = item_stock.stock_id JOIN item ON item.item_id = items.item_id');
它等于以下查询
UPDATE `item_stock`
JOIN items ON items.stock_id = item_stock.stock_id
JOIN item ON item.item_id = items.item_id
SET `item_stock`.`stock_quantity` = item_stock.stock_quantity + $new_qty
WHERE `item_stock`.`colour` = 'Kuning'
AND `item_stock`.`size` = 'XL'
AND `item`.`SKU` = 'Wooser-01'
希望它也能帮到你!