Ir para conteúdo
Fórum Script Brasil
  • 0

Consulta no banco com inner join


ThiaGonzo

Pergunta

Eu to tentando fazer uma consulta no banco e eu programo colocando todas as PK e FK como int porque fica mais facil.

então estou tentando fazer uma busca pela aplicação feita em java em uma tabela com 3 inner join.

Só que eu preciso usar o Like em todas as colunas.

usei o cast, mas ele só funciona se no script da busca não tiver a inner join.

o que quero saber o que posso fazer em termos de sql para conseguir fazer essa busca usando o like?

Abaixo o codigo da aplicação:

public VO_ListRegister getLista(Connection conn, VO_ListRegister listaPeregrino, VO_Form form) {
        String sql="";
        PreparedStatement pstmt=null;
        ResultSet rs=null;

        try {
            sql  = " SELECT * FROM tbl_peregrino ";
            sql += " INNER JOIN tbl_paroquia ON tbl_peregrino.cod_paroquia = tbl_paroquia.cod_paroquia ";
            sql += " INNER JOIN tbl_cidade ON tbl_peregrino.cod_cidade = tbl_cidade.cod_cidade ";
            sql += " INNER JOIN tbl_etapa ON tbl_peregrino.cod_etapa = tbl_etapa.cod_etapa ";
            if (!"".equals(form.getTxt_argumento()) && form.getTxt_argumento()!=null){
                sql += " WHERE (";
                sql += " txt_nome LIKE '%"+form.getTxt_argumento()+"%' OR ";
                sql += " CAST(cod_paroquia AS VARCHAR(100)) LIKE '%"+form.getTxt_argumento()+"%' OR ";
                sql += " CAST(cod_etapa AS VARCHAR(50)) LIKE '%"+form.getTxt_argumento()+"%' OR ";
                sql += " txt_comunidade LIKE '%"+form.getTxt_argumento()+"%' OR ";
                sql += " CAST(dt_nascimento AS VARCHAR(10)) LIKE '%"+form.getTxt_argumento()+"%' OR ";
                sql += " txt_endereco LIKE '%"+form.getTxt_argumento()+"%' OR ";
                sql += " CAST(cod_cidade AS VARCHAR(100)) LIKE '%"+form.getTxt_argumento()+"%' ";
                sql += ") ";
        }
        if (!"".equals(form.getTxt_ordem()) && form.getTxt_ordem()!= null){
            sql += " ORDER BY "+form.getTxt_ordem(); 
        }
        
            pstmt = conn.prepareStatement(sql);

            rs = pstmt.executeQuery();
            while (rs.next()){
                VO_Peregrino vou = new VO_Peregrino(rs.getString("cod_peregrino"),
                                                    rs.getString("txt_nome"),
                                                    rs.getString("cod_paroquia"),
                                                    rs.getString("cod_etapa"), 
                                                    rs.getString("txt_comunidade"),
                                                    rs.getString("dt_nascimento"),
                                                    rs.getString("txt_endereco"),
                                                    rs.getString("cod_cidade"));

                vou.setSgl_paroquia (rs.getString("sgl_paroquia"));
                vou.setTxt_cidade (rs.getString("txt_cidade"));
                vou.setTxt_etapa (rs.getString("txt_etapa"));
                listaPeregrino.addItem(vou);
            }
            rs.close();
            pstmt.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return listaPeregrino; 
    }

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...