Gustavo, se vc quer apenas as empresas que pertencem aos 2 ou 'n' mercados,
vc precisa antes saber de quais mercados vc está falando... tendo os ids
deles, vc pode de forma simples fazer um left join com das empresas com os
mercados, selecionando as empresas e não os mercados e fazendo um left join,
com or where agrupar as empresas e ver quais que tem 'having' o count igual
o numero de empresas... essas seriam as empresas que pertencem aos 2
mercados. eu to corridão aqui se der mais tarde faço a qury e mando aqui,
ok?

2010/2/22 Gustavo Diogo <[email protected]>

>  Perfeito!
> Esclareceu bastante.
> Valeu.
>
> felipe moraes escreveu:
>
> na documentação realmente tem/tinha que a relação one-to-one "1:1" deveria
> usar o método with();. Acredito que dizer que apenas em 1:1 deva ser usado é
> um erro. Pois, em outro momento ele fala que with serve para qualquer busca
> estática que utilize JOIN
>
>  o renan relembrou o método dinâmico de query .. como já havia citado
>
>  $mercado = ORM::factory('mercado')->find($id); <<<query 1
> $empresas = $mercado->empresas; <<<query 2
>  foreach( $empresas  as $empresa )
> {
>     echo empresa->nome;
> }
>
>  mas se não deseja fazer o filtro via loop ..
>
>  vc deve usar o método estático usando with() .. como havia falado ..
>
>  $mercados =
> ORM::factory('mercado')->with('empresa')->with('empresa:caraceristica')->where('mercado.campo',
> $parametro)->find_all(); <<<uma única query
>
>  que em uma query só já traz no resultado [em $mercados] já traz o
> resultado detalhado ..
>
>  $mercado->empresas e $mercado->empresas->categorias; <<não faz query pq
> já foi carregado ..
>
>  de acordo com os dados que vc tem, e nós ainda não sabemos, inicialize o
> objeto mais apropriado e obtenha o resultado das outras buscas, seja
> dinamicamente ou estaticamente ..
>
>  pode ser quer seja necessário a execução de 2 querys a depender do
> resultado que vc espere.
>
>  --
> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php"
> dos Grupos do Google.
> Para postar neste grupo, envie um e-mail para [email protected].
> Para cancelar a inscrição nesse grupo, envie um e-mail para
> [email protected].
> Para obter mais opções, visite esse grupo em
> http://groups.google.com/group/kohana-php?hl=pt-BR.
>
>
> --
> ------------------------------
> Gustavo Diogo
>  Cel: (21) 8622-8236
>
> --
> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php"
> dos Grupos do Google.
> Para postar neste grupo, envie um e-mail para [email protected].
> Para cancelar a inscrição nesse grupo, envie um e-mail para
> [email protected]<kohana-php%[email protected]>
> .
> Para obter mais opções, visite esse grupo em
> http://groups.google.com/group/kohana-php?hl=pt-BR.
>

-- 
Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php" dos 
Grupos do Google.
Para postar neste grupo, envie um e-mail para [email protected].
Para cancelar a inscrição nesse grupo, envie um e-mail para 
[email protected].
Para obter mais opções, visite esse grupo em 
http://groups.google.com/group/kohana-php?hl=pt-BR.

Responder a