Guest Leandro da Cunha Campos Postado Julho 22, 2008 Denunciar Share Postado Julho 22, 2008 COMO BUSCAR OS PRODUTOS QUE O CLIENTE NÃO TEM NO BANCO DE DADOS ??? // com essa consulta busco todos meus produtos SELECT produto.id, produto_descricao.descricaoFROM produto_descricao INNER JOIN produto ON (produto_descricao.id = produto.descricao) // com essa consulta busco só os produtos do cliente 9967853 SELECTvenda_detalhes.pedido, venda_detalhes.quantidade,produto_descricao.descricao, venda_detalhes.unitario,tipo_status.descricao as statusFROM produto_descricaoinner join ((venda inner join venda_item on venda.id = venda_item.venda) inner join ((venda_detalhes inner join produto on venda_detalhes.produto = produto.id) inner join tipo_status on venda_detalhes.status = tipo_status.id) on venda_item.id = venda_detalhes.pedido) on produto_descricao.id = produto.descricaoWHERE venda.cliente=9967853ORDER BY produto_descricao.descricao se alguém puder ajudar obrigado Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Julho 22, 2008 Denunciar Share Postado Julho 22, 2008 Oi 'Leandro da Cunha Campos'!O que você quer são os produtos que você tem em seu cadastro de produtos mas que o cliente ainda não adquiriu? Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Leandro da Cunha Campos Postado Julho 23, 2008 Denunciar Share Postado Julho 23, 2008 Oi 'Leandro da Cunha Campos'!O que você quer são os produtos que você tem em seu cadastro de produtos mas que o cliente ainda não adquiriu?sim isso mesmo....eu até consegui com o not exist.. muito bem retorna em menos de 1 segundo... porque minha tabela de produtos tem apenas 236 produtos... e é só um clienteSELECT produto.id as CodigoProduto, produto_descricao.descricao as ProdutoFROM produto_descricao INNER JOIN produto ON (produto_descricao.id = produto.descricao)WHERE NOT exists(SELECT venda_detalhes.produto FROM produto_descricao inner join ((venda inner join venda_item on venda.id = venda_item.venda) inner join ((venda_detalhes inner join produto on venda_detalhes.produto = produto.id) inner join tipo_status on venda_detalhes.status = tipo_status.id) on venda_item.id = venda_detalhes.pedido) on produto_descricao.id = produto.descricao WHERE venda.cliente=998765HAVING venda_detalhes.produto=produto.id)ORDER BY produto.id____________________________________________________________________________________________________________agora tenho de buscar todos os clientes de um vendedor que ainda não compraram.... minha lógicapego a tabela vendas e vejo quem comprou e retiro as excessões da tabela clientes.... mas minha consulta demora 3 minutosselect clientes.id from clientes where clientes.id_vendedor=18738not exists (select venda.`cliente` from venda where venda.`vendedor`=18738group by venda.`cliente` having venda.`cliente`= clientes.id )teria um outra forma de fazer sem o not exists??demora assim porque minha tabela vendas tem 80.000 linhas e a de clientes 45.000 Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Julho 24, 2008 Denunciar Share Postado Julho 24, 2008 Experimente otimizar seus índices. Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest Leandro da Cunha Campos
COMO BUSCAR OS PRODUTOS QUE O CLIENTE NÃO TEM NO BANCO DE DADOS ???
// com essa consulta busco todos meus produtos
SELECT
produto.id,
produto_descricao.descricao
FROM
produto_descricao
INNER JOIN produto ON (produto_descricao.id = produto.descricao)
// com essa consulta busco só os produtos do cliente 9967853
SELECT
venda_detalhes.pedido, venda_detalhes.quantidade,
produto_descricao.descricao, venda_detalhes.unitario,
tipo_status.descricao as status
FROM produto_descricao
inner join ((venda inner join venda_item on venda.id = venda_item.venda) inner join ((venda_detalhes inner join produto on venda_detalhes.produto = produto.id) inner join tipo_status on venda_detalhes.status = tipo_status.id) on venda_item.id = venda_detalhes.pedido) on produto_descricao.id = produto.descricao
WHERE venda.cliente=9967853
ORDER BY produto_descricao.descricao
se alguém puder ajudar obrigado
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados