[Resolvido]Duvida com sintaxe SQL

6 respostas
Salax

Ola,
tenho essa sintaxe com inner join, porém esta dando erro e não consigo arrumar, desde já obrigado.

select v.*, dv.*, p.id, p.nome as morador, p.condominio_id from tVisitantes v inner join tDetalhesVisitantes dv on v.id=dv.visitante_id inner join users p on dv.pessoa_id=p.id where v.status_id=1 and p.condominio_id=?

:?: :thumbup:

6 Respostas

Hebert_Coelho

E qual o erro?

Salax

Isso que gostaria de saber porque quando chega no ResultSet há um interrupção gerando o erro de sintaxe cancelando toda a operação.
E uma dúvida se algumas das tabelas estiverem vazias não gera erro de sintaxe , correto?

segue codigo

sql = "select v.id as id, v.nome as nome, v.rg as rg, v.placa as placa, v.modelo as modelo, v.cor as cor, v.status_id,"
                + " dv.id as idDv, dv.visitantes_id as visitanteId, dv.acompanhantes as acompanhantes, dv.entrada as entrada, "
                + " dv.observacao  as observacao, dv.pessoa_id, "
                + " p.id, p.nome as morador, p.condominio_id "
                + " from tVisitantes v "
                + " inner join tDetalhesVisitantes dv on dv.visitante_id=v.id "
                + " inner join users p on p.id=dv.pessoa_id "
                + " where v.status_id=1 and p.condominio_id=? ;";
        stmt = conexao.prepareStatement(sql);
        stmt.setInt(1, p.getCondominio_id());
        ResultSet rs = stmt.executeQuery();
 while(rs.next()){
            DetalhesVisitantes v = new DetalhesVisitantes();
            v.setCodigo(rs.getInt("id"));
            v.setNome(rs.getString("nome"));
            v.setRg(rs.getString("rg"));
            v.setMorador(rs.getString("morador"));
            v.setPlaca(rs.getString("placa"));
            v.setCor(rs.getString("cor"));
            v.setModelo(rs.getString("modelo"));
            v.setAcompanhantes(rs.getInt("acompanhantes"));
            v.setObservacao(rs.getString("observacao"));
            v.setDataHoraEntrada(rs.getDate("entrada"));
            dvisitas.add(v);
        }
        rs.close();
        stmt.close();
        conexao.close();
        return dvisitas;

Obrigado.

Hebert_Coelho

Se você pegar a query e rodar diretamente no banco ela funciona?

Salax

Já tentei e não funciona.

Hebert_Coelho

Já tentei e não funciona.E nem lá ele mostra o erro não? ou aponta a linha.

Salax

Já tentei e não funciona.E nem lá ele mostra o erro não? ou aponta a linha.

Apontou o erro depois de muito tentar, o erro era de escrita, correto é dv.visitantes_id e estava dv.visitante_id, a principio pensei que fosse erro de inner join,

Obrigado pelo seu tempo, e desculpa qualquer coisa. :mrgreen:

Criado 5 de abril de 2012
Ultima resposta 5 de abr. de 2012
Respostas 6
Participantes 2