[firebase-br] RES: dúvida múltiplos Joins

Ivan Guimarães Meirelles igmeirelles em gmail.com
Qui Dez 2 13:38:48 -03 2010


Olá Matheus...

Quando se usa LEFT para o join... significa que a tabela a esquerda do join
deverá trazer todos os registros, mesmo que não tenha um correspondente na
tabela que está a direita do Join...
Porém vc colocou DUAS tabelas a esquerda do join... por isso quando usa o
LEFT o firebird não sabe qual delas vc está se referindo...

Espero ter ajudado.
Um abraço.

-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Matheus Marques
Enviada em: quinta-feira, 2 de dezembro de 2010 11:03
Para: FireBase
Assunto: [firebase-br] dúvida múltiplos Joins

Boa tarde,

Alguem sabe explicar porque não pode usar essa instrução?

*select *
>   g.grupo,
>   p.produto,
>   c.complemento
> *from *produto p, grupo g
> *left join* complemento c *on *c.produto = p.produto *where *p.codgru 
> = g.codgru
>

Erro apresentado: "no current record for fetch operation.".
Se eu substituir o "left" pelo "inner" funciona, mas não é o resultset que
eu quero.
Só consegui o resultado correto trocando o *from produto e o left join
complemento*, com um *subselect*:

*select *
>   g.grupo,
>   p.produto,
>   p.complemento
> *from *
>  ( *select *p1.produto, c.complemento, p1.codgru
>    *from *produto p1
> *   left join* complemento c *on *c.produto = p1.produto
> ) p, grupo g
> *where *p.codgru = g.codgru
>


Grato,

Matheus
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br Para
saber como gerenciar/excluir seu cadastro na lista, use:
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa





Mais detalhes sobre a lista de discussão lista