Erro no banco de Dados

Olá amigos, mais uma vez eu por aqui, não sei porque na aplicação java web não roda essa query, sendo que no phpMyadmin ele funciona e trás a relação das tabela!

public ArrayList listar() throws SQLException {

    StringBuilder sql = new StringBuilder();

    sql.append("SELECT d.codigoDenuncia, d.tip_Denuncia, d.DataDenuncia,"
            + " d.ende_Denuncia,"
            + " d.foto, c.codigo, c.nome, c.cpf");
    sql.append("FROM denuncia  ");
    sql.append("INNER JOIN cliente.codigo  on = d.codigo "
            );

Connection conexao = ConexaoFactory.conectar();

    PreparedStatement comando = conexao.prepareStatement(sql.toString());

    ResultSet resultado;
    resultado = comando.executeQuery();

    ArrayList<Denuncia> itens = new ArrayList<>();

    while (resultado.next()) {

        Cliente c = new Cliente();
        c.setCodigo(resultado.getLong("c.codigo"));
        c.setNome(resultado.getString("c.nome"));
        c.setCpf(resultado.getString("c.cpf"));
        c.setEndereco(resultado.getString("c.endereco"));
        c.setTelefone(resultado.getString("c.telefone"));

        Denuncia d = new Denuncia();
        d.setCodigoDenuncia(resultado.getLong("d.codigoDenuncia"));
        d.setDataDenuncia(resultado.getDate("d.dataDenuncia"));
        d.setEnde_Denuncia(resultado.getString("d.ende_Denuncia"));
        d.setFoto(resultado.getBlob("d.foto"));
        d.setTip_Denuncia(resultado.getString("d.tipo_Denuncia"));
        
        d.setCliente(c);

        itens.add(d);

        
    }

    return itens;
}

da esse erro!

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ‘INNER JOIN cliente.codigo on = d.codigo’ at line 1

Tente assim:

sql.append("SELECT d.codigoDenuncia, d.tip_Denuncia, d.DataDenuncia,"
            + " d.ende_Denuncia,"
            + " d.foto, c.codigo, c.nome, c.cpf");
    sql.append("FROM denuncia  ");
    sql.append("INNER JOIN cliente on cliente.codigo = d.codigo " );

Sua sintaxe está escrita de forma errada!

Exemplo:

SELECT t1.coluna1, t1.coluna2, t2.coluna1, t2.coluna2
FROM tabela1 t1
INNER JOIN tabela2 t2 on(t1.id = t2.id)

Coloca um espaço depois de c.cpf. Se prestar bem atenção está tudo junto; Não sei com você, mas eu já tive muito problema com isso.

Obrigado irei tentar aqui!!

Já tentei de tudo e nada!
public ArrayList listar() throws SQLException {

    StringBuilder sql = new StringBuilder();
    sql.append("SELECT d.codigoDenuncia, d.tip_Denuncia, d.DataDenuncia," +
           " d.ende_Denuncia," +
           " d.foto, c.codigo, c.nome, c.cpf ");
sql.append("FROM denuncia d ");
sql.append("INNER JOIN cliente c on c.codigo = d.Codigo_cliente" );

Cara, se ainda não tiver resolvido posta o erro que dá e se possivel me manda no privado os scripts que você fez com os relacionamentos quando foi criar as tabelas.

Bom dia, mando.

Muito estranho cara, eu acho que não tenha nenhum erro de sintaxe no seu SQL,mas tente apenas um JOIN em vez de INNER JOIN e veja se funciona.

Amigo esse problema eu consegui resolve, agora vou pro próximo kkk. Assim essa tabela é da denuncia, agora quero fazer a tabela processo, que vai pegar os IDS do cliente e da denuncia, como poderia fazer será que só um select com os IDS, pois quero fazer os relatórios, poderia me tirar essa duvida?

1 curtida

Bem, os relacionamentos são feitos pela chave primária da tabela que se quer relacionar. Se o id for a PK então a partir dele você consegue sim.

Outra coisa, se puder dizer como conseguiu resolver o problema seria uma boa. Talvez alguém passe pelo mesmo problema que você.

Sim só não postei pq to no trabalho, mas era apenas os espaços que estavam errado. Te agradeço pela ajuda e hoje posto meu xhtml pra ver se tu pode me ajudar

Que bom que conseguiu resolver, você poderia postar como resolveu para caso alguém que esteja passando pelo mesmo problema consiga resolver também.
Eu acho que seja melhor você criar outro tópico para postar essa nova dúvida para que não fique bagunçado.

2 curtidas

Sim sim, irei fazer isso! Obrigado de coração