Fórum Consulta SQL #26707
04/04/2007
0
Bom dia à todos.
Sou iniciante com banco de dados e também com o postgres.
Como bd até então não era muito minha área, para fazer as consultas eu ia me virando com o que aprendi na faculdade.
Porém, hoje me deparei com um caso com o qual não consegui resolver, e espero que me ajudem.
O problema é o seguinte, eu tenho que pegar diversos campos de uma tabela a partir de uma lista de id´s de outra tabela. Vou tentar esclarecer o máximo possivel. Primeiro eu dou o comando SELECT id FROM nome WHERE grupo = 35; Essa consulta me retorna 14 Registros, depois na mesma consulta eu queria pegar diversos campos de outra tabela que tem como referencia esses ids da primeira consulta, é possivel ???
Toda ajuda é bem vinda...
Obrigado e bom dia a todos.
Sou iniciante com banco de dados e também com o postgres.
Como bd até então não era muito minha área, para fazer as consultas eu ia me virando com o que aprendi na faculdade.
Porém, hoje me deparei com um caso com o qual não consegui resolver, e espero que me ajudem.
O problema é o seguinte, eu tenho que pegar diversos campos de uma tabela a partir de uma lista de id´s de outra tabela. Vou tentar esclarecer o máximo possivel. Primeiro eu dou o comando SELECT id FROM nome WHERE grupo = 35; Essa consulta me retorna 14 Registros, depois na mesma consulta eu queria pegar diversos campos de outra tabela que tem como referencia esses ids da primeira consulta, é possivel ???
Toda ajuda é bem vinda...
Obrigado e bom dia a todos.
Le.menegazzo
Curtir tópico
+ 0
Responder
Posts
01/05/2007
Comodelphi
select tab1.cpo1, tab1.cpo2, tab2.cpo1, tab2.cp2
from tab1
join tab2 on tab1.id = tab2.id
where tab1.id in (1, 2, 3, 4, 5)
from tab1
join tab2 on tab1.id = tab2.id
where tab1.id in (1, 2, 3, 4, 5)
Responder
Gostei + 0
29/12/2007
Mleal
Menegazzo,
Vc tem que usar um JOIN entre as tabelas, da seguinte forma:
1. Se na tabela principal o Id for chave primária e, na tabela secundária houver uma chave estrangeira (relacionada com a chave primária):
´SELECT id FROM nome INNER JOIN tabsec ON nome.id=tabsec.id´
ou usando junção externa:
´SELECT id FROM nome LEFT JOIN tabsec ON nome.id=tabsec.id´
e neste caso, retornariam todos os id da tabela nome quer tenham ou não chave relacionada na tabela tabsec. Os campos de tabsec sem correspondência viriam com nulls.
2. Se não houver chaves primárias ou estrangeiras definidas:
´SELECT id FROM nome,tabsec WHERE nome.id=tabsec.id´
Neste caso, não há como fazer junção externa. Esta consulta retorna o mesmo resultado que a primeira.
Vc tem que usar um JOIN entre as tabelas, da seguinte forma:
1. Se na tabela principal o Id for chave primária e, na tabela secundária houver uma chave estrangeira (relacionada com a chave primária):
´SELECT id FROM nome INNER JOIN tabsec ON nome.id=tabsec.id´
ou usando junção externa:
´SELECT id FROM nome LEFT JOIN tabsec ON nome.id=tabsec.id´
e neste caso, retornariam todos os id da tabela nome quer tenham ou não chave relacionada na tabela tabsec. Os campos de tabsec sem correspondência viriam com nulls.
2. Se não houver chaves primárias ou estrangeiras definidas:
´SELECT id FROM nome,tabsec WHERE nome.id=tabsec.id´
Neste caso, não há como fazer junção externa. Esta consulta retorna o mesmo resultado que a primeira.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)