Array
(
)

consulta SQL

Valmarsantos
   - 20 dez 2005

select os.hora_inicio,os.hora_termino,
tecnicos.nome_tecnico,setor.setor

from os,tecnicos,setor,usuarios where tecnico=63
and tecnicos.matricula = os.tecnico
and setor.id_setor = os.usuario
and os.status = 1

a sql busca as dados ok... ate o ponto do setor... sendo q esta sendo trago os setores de acordo com todos os usuarios ta tabela ´usuarios´...

gostaria q apenas viesse os setores dos usuarios na tabela ´OS´....

a estrutura eh a seguinte..:

tabela ´OS´ ... tem o codigo dos usuarios....
tabela ´usuarios´... tem o codigo do setor...
tabela ´setor´ ... tem a descricao do setor com seu id....

teria como eu fazer este ligamento... sendo q atraves da tabela ´OS´ eu venha buscar o codigo do setor na tabela ´usuarios´ e depois buscar a descricao da mesma na tabela ´setor´ ????


grato...

valmar


Raserafim
   - 21 dez 2005

tente assim:
#Código


select os.hora_inicio, os.hora_termino,
tecnicos.nome_tecnico, setor.setor

from os JOIN tecnicos on os.tecnico = tecnicos.matricula and usuários LEFT JOIN setor on os.usuario = setor.id_setor

where tecnico=63 and os.status = 1



Valmarsantos
   - 21 dez 2005

o problema que o os.usuarios naum eh diferente do id_setor

sendo q os.usuarios tem q ter referencia a usuarios.setor. e depois
setor.setor....


qria fazer uma referencia em relacao as tres tabelas...

mas naum ta dando certo


Raserafim
   - 22 dez 2005

a nomenclatura destes seus campos.... não tá legal não


Emerson
   - 22 dez 2005

tente algo assim:

#Código

select
os.hora_inicio, os.hora_termino,
tecnicos.nome_tecnico, setor.setor
from
os
left join
tecnicos on (tecnicos.matricula = os.tecnico)
left join
usuarios on (usuarios.usuario = os.usuario)
left join
setor on (setor.id_setor = usuarios.setor)
where
os.tecnico = 63
and os.status = 1