簡體   English   中英

使用連接笨活動記錄更新表?

[英]update table using join codeigniter active record?

這是我的代碼片段,使用活動記錄來更新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-> query(“此處的查詢代碼”) ,它可以正常工作,但是我想使用活動記錄樣式來保持一致性。

叫我愚蠢,但嘿,行得通! 我的“解決方案”是將JOIN包含在$ this-> db-> update()中

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

希望它也會對您有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM