Inner Join with like, Mysql, and Datatable

1

Personally, I have a problem at the time of searching a field in the datatable, I have a taxpayer table, this is linked to taxpayers_param, taxpayers_end and taxpayers_tel. I'm trying to do a search using like and inner join, until then the search by name, type_param, cep and street, is working perfectly ... now, type_tel and fone_tel is repeating !!!!!

SELECT  n_contribuintes.id_cont, n_contribuintes.nome_cont, n_contribuintes_param.tipo_param,
    n_contribuintes_end.cep_end, n_contribuintes_end.rua_end, n_contribuintes_tel.tipo_tel, 
    n_contribuintes_tel.fone_tel FROM n_contribuintes 
    INNER JOIN n_contribuintes_param ON n_contribuintes.id_cont = n_contribuintes_param.id_cont_param  
    INNER JOIN n_contribuintes_end ON n_contribuintes.id_cont = n_contribuintes_end.id_cont_end  
    INNER JOIN n_contribuintes_tel ON n_contribuintes.id_cont = n_contribuintes_tel.id_cont_tel
            AND nome_cont LIKE '%avulso%' 
            OR tipo_param LIKE '%avulso%' 
            OR cep_end LIKE '%avulso%'
            OR rua_end LIKE '%avulso%'
            OR tipo_tel LIKE '%avulso%'
            OR fone_tel LIKE '%avulso%'
            WHERE id_esc_cont = 30
            GROUP BY id_cont 

Testing :::

img1

img2

img3

    
asked by anonymous 07.08.2018 / 17:48

1 answer

1

Separate the responsibilities of your query . Leave in ON only the link of the tables:

SELECT n_contribuintes.id_cont,
       n_contribuintes.nome_cont,
       n_contribuintes_param.tipo_param,
       n_contribuintes_end.cep_end,
       n_contribuintes_end.rua_end,
       n_contribuintes_tel.tipo_tel,
       n_contribuintes_tel.fone_tel 
  FROM n_contribuintes 
       INNER JOIN n_contribuintes_param ON n_contribuintes.id_cont = n_contribuintes_param.id_cont_param 
       INNER JOIN n_contribuintes_end ON n_contribuintes.id_cont = n_contribuintes_end.id_cont_end 
       INNER JOIN n_contribuintes_tel ON n_contribuintes.id_cont = n_contribuintes_tel.id_cont_tel 
 WHERE id_esc_cont = 30
  AND (nome_cont LIKE '%avulso%'
    OR tipo_param LIKE '%avulso%'
    OR cep_end LIKE '%avulso%'
    OR rua_end LIKE '%avulso%'
    OR tipo_tel LIKE '%avulso%'
    OR fone_tel LIKE '%avulso%')
 GROUP BY id_cont
    
07.08.2018 / 19:01