具有活动记录的代码点火器子查询

时间:2014-04-21 19:58:10

标签: php sql codeigniter subquery

我试图在Code Igniter中执行此查询:

Select 
    items_mtoedifsing.Marca,
    items_mtoedifsing.Modelo,
    items_mtoedifsing.Familia,
    items_movimientos.id_item,
    items_movimientos.Tipo_Movimiento,
    items_movimientos.Fecha_Movimiento,
    items_movimientos.Destino   
from items_movimientos
JOIN items_mtoedifsing ON items_mtoedifsing.id_item=items_movimientos.id_item
where 
        items_movimientos.fecha_movimiento = (Select max(fecha_movimiento) from items_movimientos it where it.id_item=items_movimientos.id_item) 
        and items_movimientos.Destino='value'

但是我对子查询有一些问题。这是我的代码,当它返回1行时返回0行:

$this->db->select('*');
$this->db->from('items_movimientos');
$this->db->join('items_mtoedifsing', 'items_mtoedifsing.id_item = items_movimientos.id_item');
$this->db->where('items_movimientos.Fecha_Movimiento', '(Select max(fecha_movimiento) from items_movimientos it where it.id_item=items_movimientos.id_item)');
$this->db->where('items_movimientos.Destino', $param);

这部分怎么办?

$this->db->where('items_movimientos.Fecha_Movimiento', '(Select max(fecha_movimiento) from items_movimientos it where it.id_item=items_movimientos.id_item)');

1 个答案:

答案 0 :(得分:1)

使用活动记录,您可以将第二个参数作为空,将第三个参数作为FALSE传递。

$subquery="(Select max(fecha_movimiento) 
           from items_movimientos it 
           where it.id_item=items_movimientos.id_item)";
$this->db->where('items_movimientos.Fecha_Movimiento ='.$subquery, null,FALSE);