Como fazer Sql com varias tabelas
Boa tarde pessoal, estou precisando fazer uma sql pra
pegar o motorista,os seus cursos e restante dos outros dados(se tiver).
tenho as seguintes tabelas
motorista(codidomotorista,nomemotorista,cpf,rg,cnh)
cursomotorista(codcurso,curso,local,datacurso,datavalidade,codmotorista)
multasmotorista(codmultas,infracao,pontuacao,local,dataautuacao,codmotorista)
advertenciamotorista(codadvertenciamotorista,codadvertencia,dataadvertencia,codmotorista)
ocorrenciamotorista(codocorrencia,descricao,dataocorrencia,codmotorista)
e estou com a seguinte sql..
select m.codidomotorista,m.nomemotorista,m.cpf,m.rg,m.cnh,
c.codcurso,c.curso,c.local,c.datacurso,c.datavalidade,
mu.infracao,mu.pontuacao,mu.local,mu.dataautuacao,
a.codadvertencia,a.dataadvertencia,
o.descricao,o.dataocorrencia
from motorista m,cursomotorista c,multasmotorista mu,advertenciamotorista a,ocorrenciamotorista o
where m.codigomotorista = c.codmotorista and
m.codigomotorista = mu.codmotorista and
m.codigomotorista = a.codmotorista and
m.codigomotorista = o.codmotorista
mas acho que tá errado pq não me retorna dados..
vcs poderiam me ajudar em mais essa??
valeu
Eric
pegar o motorista,os seus cursos e restante dos outros dados(se tiver).
tenho as seguintes tabelas
motorista(codidomotorista,nomemotorista,cpf,rg,cnh)
cursomotorista(codcurso,curso,local,datacurso,datavalidade,codmotorista)
multasmotorista(codmultas,infracao,pontuacao,local,dataautuacao,codmotorista)
advertenciamotorista(codadvertenciamotorista,codadvertencia,dataadvertencia,codmotorista)
ocorrenciamotorista(codocorrencia,descricao,dataocorrencia,codmotorista)
e estou com a seguinte sql..
select m.codidomotorista,m.nomemotorista,m.cpf,m.rg,m.cnh,
c.codcurso,c.curso,c.local,c.datacurso,c.datavalidade,
mu.infracao,mu.pontuacao,mu.local,mu.dataautuacao,
a.codadvertencia,a.dataadvertencia,
o.descricao,o.dataocorrencia
from motorista m,cursomotorista c,multasmotorista mu,advertenciamotorista a,ocorrenciamotorista o
where m.codigomotorista = c.codmotorista and
m.codigomotorista = mu.codmotorista and
m.codigomotorista = a.codmotorista and
m.codigomotorista = o.codmotorista
mas acho que tá errado pq não me retorna dados..
vcs poderiam me ajudar em mais essa??
valeu
Eric
Eric.miranda
Curtidas 0
Respostas
Gandalf.nho
22/07/2005
Do jeito que vc fez, só irá mostrar motoristas que tb tenham dados em todas as outras tabelas, você deverá usar a sintaxe LEFT/RIGHT JOIN para isso, assim:
select m.codidomotorista,m.nomemotorista,m.cpf,m.rg,m.cnh, c.codcurso,c.curso,c.local,c.datacurso,c.datavalidade, mu.infracao,mu.pontuacao,mu.local,mu.dataautuacao, a.codadvertencia,a.dataadvertencia, o.descricao,o.dataocorrencia from motorista m inner join cursomotorista c on m.codigomotorista = c.codmotorista left join multasmotorista mu on m.codigomotorista = mu.codmotorista left join advertenciamotorista a on m.codigomotorista = a.codmotorista left join ocorrenciamotorista o on m.codigomotorista = o.codmotorista
GOSTEI 0