Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite pessoal do IMasters
Gostaria de uma ajuda de voces numa query.
Tenho minha query que vai dando select em duas tabelas, a query esta funcionando certinho, mas nessas duas tabelas a unica referencia de usuario que eu tenho é o campo de login que sao numeros, mas eu queria exibir ao inves dos numeros o nome dele que tenho cadastrada em uma outra tabela que tem o campo login em comum também, pelo que me falaram é algo com inner join mas nao sei fazer.
Alguem poderia me ajudar?
$sql = "SELECT A.mailing_ba,A.mailing_login,A.mailing_status,historico_ba,B.historico_solucao,B.historico_login FROM retencao_mailing AS A, retencao_historico AS B WHERE A.mailing_ba = B.historico_ba AND A.mailing_login = B.historico_login AND B.historico_solucao = 'Técnico' AND A.mailing_status='PENDENTE'";o meu seletc é de duas tabelas nele nao preciso mexer é so isso pra selecionar mesmo, pq se eu coloco no select algo da tabela C ele printa na tela e eu nao quero nada dela.
o que eu quero fazer é o campo B.historico_login = c.usuarios_login para eu poder pegar o nome que fica na coluna usuarios_nome do login correto. olha meu sql pra você entender mais ou menos, mas ainda nao consegui acertar.
SELECT A.mailing_ba,A.mailing_login,A.mailing_status,historico_ba,B.historico_solucao,B.historico_login FROM retencao_mailing AS A, retencao_historico AS B INNER JOIN usuarios AS C ON B.historico_login = c.usuarios_login,c.usuarios_nome WHERE A.mailing_ba = B.historico_ba AND A.mailing_login = B.historico_login AND B.historico_solucao = 'Técnico' AND A.mailing_status='PENDENTE'
>
o meu seletc é de duas tabelas nele nao preciso mexer é so isso pra selecionar mesmo, pq se eu coloco no select algo da tabela C ele printa na tela e eu nao quero nada dela.
o que eu quero fazer é o campo B.historico_login = c.usuarios_login para eu poder pegar o nome que fica na coluna usuarios_nome do login correto. olha meu sql pra você entender mais ou menos, mas ainda nao consegui acertar.
SELECT A.mailing_ba,A.mailing_login,A.mailing_status,historico_ba,B.historico_solucao,B.historico_login FROM retencao_mailing AS A, retencao_historico AS B INNER JOIN usuarios AS C ON B.historico_login = c.usuarios_login,c.usuarios_nome WHERE A.mailing_ba = B.historico_ba AND A.mailing_login = B.historico_login AND B.historico_solucao = 'Técnico' AND A.mailing_status='PENDENTE'
Eu não entendi nada agora... Evite criar "variaveis" como A, B, C... Isso complica ainda mais o codigo e prejudica a manunteção, outro detalhe:
O que é isso??? Já tas com outro erro de charset...
B.historico_solucao = 'Técnico'
Esse "B.historico_login" é o login do historico ou do usuario? Se forem a mesma coisa, então iguale os nomes, pra logo de cara quem for fazer a manunteção nao quebre a cabeca com coisas simples.
B.historico_login = c.usuarios_login
Explica melhor o que tu quer...O que eu entendi antes é que eram 2 tabelas, uma do login e a outra do usuário e que tu queria o nome do usuário a parti do login do mesmo.
Amigo peterlink, para trabalhar com MySQL também é preciso entender todo um conceito. Existem Primary Keys, Foreign Keys,
Indexes e muitos motivos para cria-las / utiliza-las. Por você não ter percebido que sua query já faz "INNER JOIN" porém de uma
forma diferente e não saber oque é INNER JOIN eu posso presumir que você está tentando fazer manutenção em uma query da
qual não foi mentor. Se foi pare agora mesmo pois desenvolver sem saber como fazer corretamente só vai prejudicar seu conhecimento.
Por este motivo eu recomendo que antes de continuar seu desenvolvimento, de uma olha nos tutoriais do google, procure saber
melhor como funcionam a criação de indices, para que servem, para depois passar para INNER JOIN. Percebe o quanto é difícil
fazer algo sem saber direito como tudo funciona? Por isso eu voto para que você estude mais sobre MySQL antes de dar continuidade
ao seu desenvolvimento.
Abraços.
São duas tabelas, uma que tem o login e outra que tem o nome, correto?