Select 3 tabelas

3 respostas
W

Bom dia!!!

estou querendo consultar 3 tabela do myql, teria como me ajudar estou fazendo assim mais ta tando erro .

SELECT nome_empresa as nome,id_empresa as empresa,id_pedido as pedido
FROM itens, pedido, emresa
WHERE pedido.empresa = empresa.empresa and itens.pedido = pedido.pedido ;

3 Respostas

U

vc precisa realizar um inner join.

Jhonny_Oliveira

Não conheço a estrutura de suas tabelas mas deu pra perceber algumas coisas:

SELECT nome_empresa as nome, id_empresa as empresa, id_pedido as pedido FROM itens, pedido, emresa WHERE pedido.empresa = empresa.empresa and itens.pedido = pedido.pedido

Nos campos do select você não está especificando de qual das tabelas eles são por exemplo nome_empresa você deve referenciar como empresa.nome_empresa.

Outra coisa no where você colocou a condição pedido.empresa = empresa.empresa, pelo pequeno exemplo me parece que você está tentando utilizar um alias (id_empresa as empresa) no where e eu pelo menos não conheço nenhum SGBD que reconheça isso, eu nunca tentei para falar a verdade.

Em consultas com esse eu sempre utilizo JOIN como o exemplo que se segue, nem sempre causa o melhor desempenho mas sem dúvida deixa a leitura muito mais fácil de entender.

SELECT
	empresa.nome_empresa as nome,
	empresa.id_empresa as empresa,
	pedido.id_pedido as pedido,

FROM
	empresa
	
JOIN
	pedido ON pedido.empresa = empresa.id_empresa

JOIN
	itens ON itens.pedido = pedido.id_pedido
jaissonduarte

falta juntar as tabelas: join
no caso do sql fica assim

SELECT dados
FROM tabela apelido (t1)
join tabela dois (t2)
on t1.chave_primaria=t2.chave_referncia
join tabela tres (t3)
on t2.chave_primaria=t3.chave_refericia
WHERE condição;
Criado 4 de dezembro de 2011
Ultima resposta 4 de dez. de 2011
Respostas 3
Participantes 4