Array
(
)

União de tabelas

Paulo
   - 22 dez 2005

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


Martins
   - 22 dez 2005

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


Paulo
   - 22 dez 2005


Citação:
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)


Emerson
   - 22 dez 2005

#Código

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



da forma que estava (where produto) o mecanismo não sabe de qual tabela pegar o campo produto. nesse caso o campo precisa ser identificado.


Martins
   - 22 dez 2005


Citação:
#Código

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



da forma que estava (where produto) o mecanismo não sabe de qual tabela pegar o campo produto. nesse caso o campo precisa ser identificado.

Boa Emerson.en, 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?


Emerson
   - 23 dez 2005

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.

#Código

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:
#Código
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 produto da tabela produtos seja igual ao produto da tabela precos.


Martins
   - 23 dez 2005


Citação:
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.

#Código

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:
#Código
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 produto da tabela produtos seja igual ao produto da tabela precos.


Certo Emerson.en, entendido camarada.

Valew!!!!