Ir para conteúdo

POWERED BY:

Arquivado

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

kadunit

busca

Recommended Posts

Pessoal,

 

Seguinte... tenho uma tabela chamada ordens. nessa tabela ordens eu tenho uma coluna aberto_por que salva o id do usuario ou o id do sindico que está abrindo a ordem.

 

Ai surgiu meu problema: Na hora de buscar as ordens do sistema, quando eu coloco pra trazer a coluna aberto por? o id do aberto por pode estar em duas tabelas diferentes... fazendo pra uma coluna ou para outra funciona perfeitamente.

 

segue:

 

select o.id as ordem_id, 
		o.data_abertura as data_abertura,
		o.dia_agendado as dia_agendado,
		o.hora_agendado as hora_agendado,
		o.problema as problema,
		o.problema_descricao as problema_descricao,
		os.nome as ordem_status,
		con.nome as condominio_nome,
		usu.login as aberto_por,
		usu2.nome as operador
	from ordens o, ordensStatus os, condominios con, usuarios usu, usuarios usu2
		where
		o.ordem_status_id = os.id
		and o.contratos_id = con.id
		and o.aberto_por = usu.id
		and o.usuarios_id = usu2.id
		order by o.dia_agendado desc

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

fazendo pra uma coluna ou para outra funciona perfeitamente

se funciona qual o problema ?

 

 

ou

 

 

from ordens o, ordensStatus os, condominios con, usuarios usu, usuarios usu2 
where o.ordem_status_id = os.id 
and o.contratos_id = con.id 
and (o.aberto_por = usu.id or o.usuarios_id = usu2.id) 
order by o.dia_agendado desc

--------------------

mas, por

 

duas tabelas diferentes

entendemos que são tabelas ou colunas ?!

Não entendi.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Motta,

 

Deixe tentar me explicar melhor...

 

tenho 3 tabelas envolvidas... ordens, usuarios e sindicos

 

Na hora que um usuario abre uma nova ordem, eu salvo na coluna aberto por da tabela ordens o id do usuario.

Na hora que um sindico abre uma nova ordem, eu salvo o id dele na tabela ordens também.

 

Na hora que busco as ordens abertas, no campo aberto por eu busco o nome de quem abriu... ai surgiu meu problema: Quando busco na tabela usuarios, se o aberto_por tiver um id 6 por exemplo, id 6 foi uma ordem aberta por um sindico, logo nao mostra essa ordem. Eu queria colocar na tabela aberto_por uma "busca" em duas tabelas diferentes, usuarios e sindicos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode ter um problema aqui creio.

 

Se o id for 6 pode existir um usuário com este id e um síndico com este id, pessas diferentes.

Não seria melhor trabalhar com dois campos diferentes , ou um indicador que quem fez o registro ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Motta,

 

Na tabela ordens eu uso os campos assim:

 

usuario_id = eu salvo o id do usuario que vai atender a ordem... no caso o operador ( que ficam salvos na tabela usuario ) que tenha um id 6 e nome joao.

 

aberto_por = eu salvo o id do usuario da sessao... que vamos supor seja 7, de nome maria na tabela usuarios e na tabela sindicos eu posso ter um usuario 7 tambem que sera a joana..

 

O que voce me sugere fazer?

 

Eu tentei dessa forma e nao consegui

and (o.aberto_por = usu.id or o.usuarios_id = usu2.id)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas como vc sabe que um valor "7" do campo aberto_por se refere a uma tabela ou a outra ?

 

Sem entender esta lógica não tem como montar o SQL

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu nao sabia! O número 7 realmente podia estar em duas tabelas e assim não conseguiria saber quem abriu de fato.

 

Salvei na sessão o login do usuario logado que é único e estou salvando esse valor na coluna aberto_por.

 

 

Obrigado Motta!

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.