Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

William Espindola

[Resolvido] Como selecionar dois valores entre duas tabelas com a

Recommended Posts

Ola pessoal, tenho duas tabelas um tbl_usuários e a outra tbl_registrofitas, nesta tabela tbl_registrofitas tenho um campo do usuário que cadastrou e o usuário que alterou.

 

Preciso selecionar o nome do usuário que cadastrou e o nome do usuário que alterou, mas não sei como vou fazer isto :ermm:

 

Tabela tbl_registrofitas

 

id | fitas | id_usucad | id_usualtera

1 | fita1 | 10 | 11

2 | fita2 | 10 | 11

3 | fita3 | 10 | 11

 

Tabela tbl_usuários

 

id | nome

10 | william

11 | cecília

 

O grande problema é que preciso selecionar os dois na mesma consulta. :huh:

 

O resultado em que preciso é este se alguém porder ajudar agradeço

 

Usuário Cadastro | Usuário Ultera | Fita

william | Cecília | Fita1

Cecília | William | Fita2

william | Cecília | Fita3

Compartilhar este post


Link para o post
Compartilhar em outros sites
Tabela tbl_registrofitas

 

id | fitas | id_usucad | id_usualtera

1 | fita1 | 10 | 11

2 | fita2 | 10 | 11

3 | fita3 | 10 | 11

 

Tabela tbl_usuários

 

id | nome

10 | william

11 | cecília

 

Faça join 2x na mesma tabela(duas instãncias).

 

select *
from tbl_registrofitas rf,tbl_usuários uscad,tbl_usuários usalt
where rf.id_usucad = uscad.id
and   rf.id_usualtera = usalt.id

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso ai! como o Motta falou, outra forma (que também são duas instancias join é assim:

 

SELECT 
uscad.nome as 'Usuário Cadastro', usalt.nome AS 'Usuário Altera', rf.fitas AS 'Fita'
FROM tbl_registrofitas rf
INNER JOIN tbl_usuarios uscad ON uscad.id = rf.id_usucad
INNER JOIN tbl_usuarios usalt ON usalt.id = rf.id_usualtera

 

Ps: cuidado com a nomenclatura das tabelas, não devem ter acentuação ex: tbl_usuários correto: tbl_usuarios...

 

funcionou?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa funcionou maravilha galera, agradeço a força. Só que agora atamos com um outro problema. :huh:

 

Agora não esta selecionando os que ainda não foram auterados, que seriam os pendentes no caso pendentes.

 

O Select é este:

SELECT 
equ.equ_nome,
ope.ope_nome,
rgt.rgt_status,DATE_FORMAT( rgt.rgt_dateReg,'%d/%m/%Y' ) AS rgt_dateReg,rgt.rgt_reason,DATE_FORMAT( rgt.rgt_dateAnswer,'%d/%m/%Y' ) AS rgt_dateAnswer,rgt.rgt_dayWeek,
usucad.usu_nome AS usucad, usuupd.usu_nome AS usuupd
FROM tbl_registerTapes As rgt
INNER JOIN tbl_equipamentos AS equ ON equ.equ_id = rgt.equ_id_rgt
INNER JOIN tbl_usuarios usucad ON usucad.usu_id = rgt.usu_id_rgtReg
INNER JOIN tbl_usuarios usuupd ON usuupd.usu_id = rgt.usu_id_rgtUpd
INNER JOIN tbl_operadores AS ope ON ope.ope_id = rgt.ope_id_rgt
WHERE 1

 

Alguma dica? :joia:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala manow!

 

tente usar um LEFT JOIN, adapte a query abaixo, para o problema:

SELECT 
       uscad.nome as 'Usuário Cadastro', usalt.nome AS 'Usuário Altera', rf.fitas AS 'Fita'
FROM tbl_registrofitas rf
INNER JOIN tbl_usuarios uscad ON uscad.id = rf.id_usucad
LEFT  JOIN tbl_usuarios usalt ON usalt.id = rf.id_usualtera

 

*PS: repare bem no ultimo LEFT JOIN, e tente adaptar...

 

funcionou?!!?!?!?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.