having Sex, 01 de fevereiro de 2008 - as 23h51
public function having( $havingStr = null )
Quando queremos filtrar nossa seleção a partir de métodos internos do SGBD, como count, max, min, avg etc, essas comparações não podem ser utilizadas na cláusula where da consulta. Desta forma, pode-se utilizá-las na cláusula having, em conjunto com a group by. Exemplo:
// novo objeto de pessoa
$pessoa = new Pessoa;
// pedidos
$pedido = new Pedido;
// une as classes
$pessoa->alias('p') // muda o alias de pessoa
join($pedido, 'inner', 'pe');
// seleciona todos os dados de pessoa
$pessoa->selectAs();
// seleciona quantidade de pedidos que esta pessoa fez
$pessoa->select("count(pe.idpedido) as total_pedido");
// seleciona somente os que tem no mínimo 2 pedidos
$pessoa->having(" count(pe.idpedido) >= 2" );
// agrupa pelo ID da pessoa
$pessoa->groupBy('p.idpessoa');
// efetua a consulta
$pessoa->find();