Estou com uma dúvida que não consigo resolver…
Tenho 5 tabelas:
Cliente

Produto

Tele_Entrega (dados da compra, por exemplo, valor total da compra, cliente que comprou, etc)

Status_Tele_Entrega

Produto_tele_entrega (Produtos que compõe compra)

Eu não estou conseguindo colocar uma clausula WHERE que diferencie os produtos da Tele_entrega. Por exemplo:
select entrega.id_tele_entrega, entrega.produto, entrega.qtd
from cliente
left join (select DISTINCT
t.id_tele_entrega,
t.id_cliente as cliente,
pr.nome_produto as produto,
p.quantidade as qtd
from tele_entrega t, produto_tele_entrega p, produto pr
where t.id_tele_entrega = p.id_tele_entrega
and pr.id_produto = p.id_produto) as entrega
on cliente.id_cliente = entrega.cliente
where cliente.id_cliente = 3
Me dá como resultado:

Este é o resultado de 2 compras (id_tele_entrega).
Gostaria de incluir uma clausula WHERE (nesse SQL, ou não) que me individualizasse a tele_entrega (WHERE tele_entrega.id_tele_entrega=12, por exemplo) para que a consulta me retornasse apenas os produtos daquela compra.
nao seria fazer apenas
and tele_entrega.id_tele_entrega=12
???
[quote=CristianPalmaSola10]nao seria fazer apenas
and tele_entrega.id_tele_entrega=12
???[/quote]
não por causa do left join, se eu colocasse isso daria erro.
bom mas entaum me diga que dados voce quer trazer na consulta para que eu tente fazer essa consulta …
É necessário fazer o subselect?
Acredito que sem ele fica mais simples e rápido de trazer o resultado.
SELECT pte.id_tele_entrega, p.nome_produto, pte.quantidade FROM produto p
LEFT JOIN produto_tele_entrega pte ON p.id_produto = pte.id_produto
LEFT JOIN tele_entrega te ON te.id_tele_entrega = pte.id_tele_entrega
WHERE te.id_cliente = 3 AND te.id_tele_entrega =12
Primeiramente obrigado pelo interesse em ajudar.
Bom, a minha consulta tem que retornar o pedido correto que o cliente fez. Não estou preocupado não é nem com os dados que a consulta pode trazer e sim que ela traga os dados corretos. Por, exemplo, nesta consulta ela não está retornando o produto correto, ou seja, o produto que faz parte do tele_entrega|produto_tele_entrega.
SELECT pte.id_tele_entrega, p.nome_produto, pte.quantidade FROM produto p
LEFT JOIN produto_tele_entrega pte ON p.id_produto = pte.id_produto
LEFT JOIN tele_entrega te ON te.id_tele_entrega = pte.id_tele_entrega
WHERE te.id_cliente = 3 AND te.id_tele_entrega = 12
e não estou enxergando o por quê.
Primeiramente obrigado pelo interesse em ajudar.
Bom, a minha consulta tem que retornar o pedido correto que o cliente fez. Não estou preocupado não é nem com os dados que a consulta pode trazer e sim que ela traga os dados corretos. Por, exemplo, nesta consulta ela não está retornando o produto correto, ou seja, o produto que faz parte do tele_entrega|produto_tele_entrega.
SELECT pte.id_tele_entrega, p.nome_produto, pte.quantidade FROM produto p
LEFT JOIN produto_tele_entrega pte ON p.id_produto = pte.id_produto
LEFT JOIN tele_entrega te ON te.id_tele_entrega = pte.id_tele_entrega
WHERE te.id_cliente = 3 AND te.id_tele_entrega = 12
e não estou enxergando o por quê.
Primeiramente obrigado pelo interesse em ajudar.
Bom, a minha consulta tem que retornar o pedido correto que o cliente fez. Não estou preocupado não é nem com os dados que a consulta pode trazer e sim que ela traga os dados corretos. Por, exemplo, nesta consulta ela não está retornando o produto correto, ou seja, o produto que faz parte do tele_entrega|produto_tele_entrega.
SELECT pte.id_tele_entrega, p.nome_produto, pte.quantidade FROM produto p
LEFT JOIN produto_tele_entrega pte ON p.id_produto = pte.id_produto
LEFT JOIN tele_entrega te ON te.id_tele_entrega = pte.id_tele_entrega
WHERE te.id_cliente = 3 AND te.id_tele_entrega = 12
e não estou enxergando o por quê.
Primeiramente obrigado pelo interesse em ajudar.
Bom, a minha consulta tem que retornar o pedido correto que o cliente fez. Não estou preocupado não é nem com os dados que a consulta pode trazer e sim que ela traga os dados corretos. Por, exemplo, nesta consulta ela não está retornando o produto correto, ou seja, o produto que faz parte do tele_entrega|produto_tele_entrega.
SELECT pte.id_tele_entrega, p.nome_produto, pte.quantidade FROM produto p
LEFT JOIN produto_tele_entrega pte ON p.id_produto = pte.id_produto
LEFT JOIN tele_entrega te ON te.id_tele_entrega = pte.id_tele_entrega
WHERE te.id_cliente = 3 AND te.id_tele_entrega = 12
e não estou enxergando o por quê.