在get_where codeigniter上加入表

时间:2013-05-05 01:39:18

标签: codeigniter join

我需要加入一个表并从该表中减去position和pricebycat1,但我无法找出codeigniter上的函数。

这是我检索产品的功能。

function get_product($id, $related=true)
{
    $result = $this->db->get_where('products',array('id'=>$id))->row();
    // get position, pricebycat1, join category_products 'category_products.product_id=products.id'
    if(!$result) {
        return false;
    }
    $related = json_decode($result->related_products);
    if(!empty($related)) {
        //build the where
        $where = false;
        foreach($related as $r) {
            if(!$where) {
                    $this->db->where('id', $r);
            } else {
                    $this->db->or_where('id', $r);
            }
            $where = true;
        }
        $result->related_products = $this->db->get('products')->result();
    } else {
        $result->related_products = array();
    }
    $result->categories = $this->get_product_categories($result->id);
    // group discount?
    if($this->group_discount_formula) {
        eval('$result->price=$result->price'.$this->group_discount_formula.';');
    }
    return $result;
}

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您无法仅使用get_where()加入另一个表格。 尝试将此方法用于提取数据

$this->db->select('*.products, category_products.position, category_products.price');
$this->db->from('products');
//join LEFT by default
$this->db->join('category_products', 'category_products.product_id=products.id');
$this->db->where('products.id = '.$id);
$this->db->row();