Ajuda com o select e join mysql
11/11/2022
0
tenho uma tabela mãe com processos, uma tabela com cadastro de usuarios e uma tabela que indica quais são os usuarios alocados naquele processo
cada processo pode ter até 4 usuarios(linhas) com tipos de usuarios diferentes.
Por exemplo o processo 922749 possui 4 usuarios na tabela processo_credito_users
select * from processos_credito_users where processo_credito_id = 922749
id processo_credito_id user_id
4897608 922749 4
4897609 922749 722
4897610 922749 723
4897611 922749 721
os tipos se usuário são
id tipo_usuario
4 Incorporadora
721 Corretor
722 Gerente
723 Corretor
Eu preciso conseguir retornar somente o Corretor de maior ID mas quando eu aplico o select ele me retorna os dois
select pc.id, pcu.id, u1.id, u1.tipo_usuario from processos_credito pc
left join processos_credito_users pcu on pcu.processo_credito_id = pc.id
and pcu.user_id = (select max(u2.id) from users u2 where u2.id = pcu.user_id and u2.tipo_usuario = ''''Corretor'''' )
left join users u1 on u1.id = pcu.user_id
where pc.id = 922749
pc_id pcu_id user_id tipo_usuario
922749 4897610 723 Corretor
922749 4897611 721 Corretor
Victor
Posts
17/11/2022
Anderson Gonçalves
Skype: anderson.case13@gmail.com
select
pc.id, pcu.id, u1.id, u1.tipo_usuario
from
processos_credito pc
left join processos_credito_users pcu
on pcu.processo_credito_id = pc.id
left join users u1 on u1.id = pcu.user_id
where pc.id = 922749 and
// -> Essa parte fica no WHERE ( pcu.user_id = (select max(u2.id) from users u2 where u2.id = pcu.user_id and u2.tipo_usuario = ''''Corretor'''' ) )
mas ainda assim acho que essa sua comparação não está correta!
tenho uma tabela mãe com processos, uma tabela com cadastro de usuarios e uma tabela que indica quais são os usuarios alocados naquele processo
cada processo pode ter até 4 usuarios(linhas) com tipos de usuarios diferentes.
Por exemplo o processo 922749 possui 4 usuarios na tabela processo_credito_users
select * from processos_credito_users where processo_credito_id = 922749
id processo_credito_id user_id
4897608 922749 4
4897609 922749 722
4897610 922749 723
4897611 922749 721
os tipos se usuário são
id tipo_usuario
4 Incorporadora
721 Corretor
722 Gerente
723 Corretor
Eu preciso conseguir retornar somente o Corretor de maior ID mas quando eu aplico o select ele me retorna os dois
select pc.id, pcu.id, u1.id, u1.tipo_usuario from processos_credito pc
left join processos_credito_users pcu on pcu.processo_credito_id = pc.id
and pcu.user_id = (select max(u2.id) from users u2 where u2.id = pcu.user_id and u2.tipo_usuario = ''''Corretor'''' )
left join users u1 on u1.id = pcu.user_id
where pc.id = 922749
pc_id pcu_id user_id tipo_usuario
922749 4897610 723 Corretor
922749 4897611 721 Corretor
18/11/2022
Emerson Nascimento
select pc.id, pcu.id, u1.id, u1.tipo_usuario from processos_credito pc left join processos_credito_users pcu on pcu.processo_credito_id = pc.id left join users u1 on u1.id = pcu.user_id where pc.id = 922749 and u1.id = ( select max(pcu2.user_id) from processos_credito_users pcu2 where pcu2.processo_credito_id = pc.id )
18/11/2022
Emerson Nascimento
select pc.id, pcu.id, u1.id, u1.tipo_usuario from processos_credito pc left join processos_credito_users pcu on pcu.processo_credito_id = pc.id left join users u1 on u1.id = pcu.user_id where pc.id = 922749 and u1.id = ( select max(pcu2.user_id) from processos_credito_users pcu2 inner join users u2 on u2.id = pcu2.user_id and u2.tipo_usuario = 'Corretor' where pcu2.processo_credito_id = pc.id )
23/12/2022
Arthur Heinrich
select pc.id, u1.id, u1.tipo_usuario from processos_credito pc left join processos_credito_users pcu on pcu.processo_credito_id = pc.id and pcu.user_id = (select max(u2.id) from users u2 where u2.id = pcu.user_id and u2.tipo_usuario = ''''Corretor'''' ) left join users u1 on u1.id = (select pcu.id from processos_credito_users pcu where pcu.processo_credito_id = pc.id order by pcu.user_id limit 1) where pc.id = 922749
23/12/2022
Arthur Heinrich
select pc.id, u1.id, u1.tipo_usuario from processos_credito pc left join users u1 on u1.id = (select pcu.id from processos_credito_users pcu where pcu.processo_credito_id = pc.id order by pcu.user_id limit 1) where pc.id = 922749
Clique aqui para fazer login e interagir na Comunidade :)