Jump to content
pedrotuga

duvida em query atraves de multiplos relacionamentos

Recommended Posts

pedrotuga

ppl... se eu tiver uma bd com varias tabelas relacionadas em cadeia... tipo.. cuma cadeia longa de tabelas relacionadas da seguinte forma

A relaciona com B que relaciona com C que relaciona com D que relaciona com E

o query que quero fazer é do tipo


select A.nome, E.ano
from
(... esta parte confunde-me)
where
A.rel=B.rel=C.rel=D.rel=E.rel

como é? que tabelas preciso de incluir no WHERE?

thx

Share this post


Link to post
Share on other sites
slbs@work

ppl... se eu tiver uma bd com varias tabelas relacionadas em cadeia... tipo.. cuma cadeia longa de tabelas relacionadas da seguinte forma

A relaciona com B que relaciona com C que relaciona com D que relaciona com E

o query que quero fazer é do tipo


select A.nome, E.ano
from
(... esta parte confunde-me)
where
A.rel=B.rel=C.rel=D.rel=E.rel

como é? que tabelas preciso de incluir no WHERE?

thx

ora à partida no  FROM precisa de incluir as tabelas que precisas ... neste caso ...        A,B,C,D,E

SELECT A.nome, E.ano 

FROM

      A,B,C,D,E       

WHERE

A.rel  = B.rel  & 

B.rel1= C.rel1 &

C.rel2= D.rel2 &

D.rel3= E.rel3

no where tens de colocar restrições de modo a eliminar linhas repetidas ... isto pk na realidade o que faz o FROM é gerar todas as combinações das tabelas que lá incluis  ...

se cada tabela tiver 3 campos a tabela " gerada pelo FROM" teria 5*3 ou seja 15 Campos ... desses campos so te interessam ( WHERE ) os que

A.rel  = B.rel  e 

B.rel1= C.rel1 e

C.rel2= D.rel2 e

D.rel3= E.rel3

e no fim ...

Selecionas --> SELECT -> A.nome e E.ano

... mas poderá existir um outro comando que te facilite a tarefa .... .. vou ter de meditar um pouco mais no assunto...

Share this post


Link to post
Share on other sites
teckV

para mim a melhor forma de relacionar tabelas é através de relações entre tabelas criadas no database server

se tivermos as relações e as chaves bem criadas e possivel criar relações interessantes com INNER JOINS, LEFT JOINS, etc

neste exemplo tenho 4 tabelas relacionadas

tabelas:

pd_contas_pedidos

pd_webconfig

pd_webconf_servidor

pd_servidores

Cada conta_pedido tem um webconfig e cada webconfig pode ter varios servidores...

sabendo apenas o ID do pedido é possivel ir a todas as tabelas e sacar apenas o nome do servidor na tabela mais afastada

ID pedido = 1

SELECT     pd_contas_pedidos.id_pedidos AS id_conta, pd_servidores.nome AS nome_servidor
FROM         pd_contas_pedidos INNER JOIN
                      pd_webconf_servidor ON pd_contas_pedidos.id_webconfig = pd_webconf_servidor.id_webconfig INNER JOIN
                      pd_webconfig ON pd_contas_pedidos.id_webconfig = pd_webconfig.id_webconfig AND 
                      pd_webconf_servidor.id_webconfig = pd_webconfig.id_webconfig INNER JOIN
                      pd_servidores ON pd_webconf_servidor.id_Servidor = pd_servidores.id_servidor
WHERE     (pd_contas_pedidos.id_pedidos = 1)

Share this post


Link to post
Share on other sites
pedrotuga

Epa... eu n uso muito o join.... costumo fazer as junções no where.

Mas basicamente é preciso ioncluir as mesmas condições de relacionamento.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.