22/12/2005

União de tabelas

Como unir 2, 3 ou 4 tabelas, sem o uso de JOIN, INNER JOIN e etc..?


Paulo

Respostas

22/12/2005

Martins

Acho q vc pode usar o operador UNION para este fim, já que não quer usar Join, inner join, etc...


Responder Citar

22/12/2005

Paulo

select produtos.descricao,precos.preco from produtos, precos where produto = precos.produto



Porque então essa sql está errada? Dá o erro: AMBIGUOUS COLUNM ´PRODUTO´
mas eu tenho nas duas tabelas um campo chamnado Produto(Código do Produto). Essa tabela não pode ser mudada o nome da coluna(+-15.000 itens)


Responder Citar

22/12/2005

Emerson

select
  produtos.descricao,precos.preco
from
  produtos, precos
where
  produtos.produto = precos.produto



da forma que estava ([b:3d2fbf6549]where produto[/b:3d2fbf6549]) o mecanismo não sabe de qual tabela pegar o campo produto. nesse caso o campo precisa ser identificado.


Responder Citar

22/12/2005

Martins

select
  produtos.descricao,precos.preco
from
  produtos, precos
where
  produtos.produto = precos.produto
da forma que estava ([b:0959b8219d]where produto[/b:0959b8219d]) o mecanismo não sabe de qual tabela pegar o campo produto. nesse caso o campo precisa ser identificado.


Boa [b:0959b8219d]Emerson.en[/b:0959b8219d], pois do jeito q estava Produto poderia pertencer tanto a tabela produtos quanto a tabela preços e se considerado membro dessa última seria considerada ambigua não é isso?


Responder Citar

23/12/2005

Emerson

o campo é ambíguo porque existe nas duas tabelas. isso é fato. sempre que houver um campo em duas tabelas, configura ambiguidade.

o erro acontece porque o mecanismo do banco de dados não consegue distinguir de qual tabela usar o campo citado. por isso o campo precisa ser identificado.

select
  produtos.descricao,precos.preco
from
  produtos, precos
where
  produto = precos.produto

ilustrando o ´pensamento´ do mecanismo do banco de dados:
vou trabalhar com as tabelas produtos e precos;
pego o campo descricao da tabela produtos;
pego o campo preco da tabela precos;
desde que produto... produto? xiii... o campo produto existe nas duas tabelas.
a qual tabela esse bendito usuário está se referindo? humm... não sei... :shock: não consigo decidir, então... erro!!!

da outra forma:
select
  produtos.descricao,precos.preco
from
  produtos, precos
where
  produtos.produto = precos.produto

nesse caso, o ´pensamento´ seria:
vou trabalhar com as tabelas produtos e precos;
pego o campo descricao da tabela produtos;
pego o campo preco da tabela precos;
desde que [i:10991e55a8]produto[/i:10991e55a8] da tabela produtos seja igual ao [i:10991e55a8]produto[/i:10991e55a8] da tabela precos.


Responder Citar

23/12/2005

Martins

o campo é ambíguo porque existe nas duas tabelas. isso é fato. sempre que houver um campo em duas tabelas, configura ambiguidade. o erro acontece porque o mecanismo do banco de dados não consegue distinguir de qual tabela usar o campo citado. por isso o campo precisa ser identificado.
select
  produtos.descricao,precos.preco
from
  produtos, precos
where
  produto = precos.produto
ilustrando o ´pensamento´ do mecanismo do banco de dados: vou trabalhar com as tabelas produtos e precos; pego o campo descricao da tabela produtos; pego o campo preco da tabela precos; desde que produto... produto? xiii... o campo produto existe nas duas tabelas. a qual tabela esse bendito usuário está se referindo? humm... não sei... :shock: não consigo decidir, então... erro!!! da outra forma:
select
  produtos.descricao,precos.preco
from
  produtos, precos
where
  produtos.produto = precos.produto
nesse caso, o ´pensamento´ seria: vou trabalhar com as tabelas produtos e precos; pego o campo descricao da tabela produtos; pego o campo preco da tabela precos; desde que [i:d5e6a36e18]produto[/i:d5e6a36e18] da tabela produtos seja igual ao [i:d5e6a36e18]produto[/i:d5e6a36e18] da tabela precos.



Certo [b:d5e6a36e18]Emerson.en[/b:d5e6a36e18], entendido camarada.

Valew!!!!


Responder Citar