zeanwork.com.br  >>  Fórum  >>  Models e Banco de Dados  >>  innerJoin
Models e Banco de Dados
Flavio Cesarino
Criado em: 16/12/2011 03h 01min
innerJoin
Não estou conseguindo fazer o innerJoin para relacionar mais de uma tabela

Deste modo não da certo

public function adminIndex(){

$this->setVar('usuarios', $this->usuarios->read(array(
'fields' => array('usuarios.id', 'usuarios.nome', 'usuarios.email', 'usuarios.dataregistro', 'permissoes.nome as permissao', 'usuariosstatus.nome as status')
, 'innerJoin' => array('permissoes' => array('permissoes.nivel' => 'usuarios.permissaoid'))
, 'innerJoin' => array('usuariosstatus' => array('usuariosstatus.codigo' => 'usuarios.statusid'))
)
)
);
}

Deste modo da certo:

public function adminIndex(){

$this->setVar('usuarios', $this->usuarios->read(array(
'fields' => array('usuarios.id', 'usuarios.nome', 'usuarios.email', 'usuarios.dataregistro', 'permissoes.nome as permissao')
, 'innerJoin' => array('permissoes' => array('permissoes.nivel' => 'usuarios.permissaoid'))
)
)
);
}

Deste modo também da certo:

public function adminIndex(){

$this->setVar('usuarios', $this->usuarios->read(array(
'fields' => array('usuarios.id', 'usuarios.nome', 'usuarios.email', 'usuarios.dataregistro', 'usuariosstatus.nome as status')
, 'innerJoin' => array('usuariosstatus' => array('usuariosstatus.codigo' => 'usuarios.statusid'))
)
)
);
}
Josemar Davi Luedke
Respondido em: 16/12/2011 19h 30min
Alterado em: 16/12/2011 19h 30min
Olá, para você fazer dois innersJoins vc precisa fazer assim:



<?php
$this->setVar('usuarios'$this->usuarios->read(array( 
      'fields' => array('usuarios.id''usuarios.nome''usuarios.email''usuarios.dataregistro''permissoes.nome as permissao''usuariosstatus.nome as status')
    , 'innerJoin' => array(
                          'permissoes' => array('permissoes.nivel' => 'usuarios.permissaoid')
                        , 'usuariosstatus' => array('usuariosstatus.codigo' => 'usuarios.statusid')
                    )
                )
            ) 
        );




Att,
Flavio Cesarino
Respondido em: 19/12/2011 17h 31min
Obrigado, abri um tópico com nome igual ao anterior porque não estava conseguindo adicionar resposta no outro. Se quiser pode apagar o outro.