vccrespo 0 Denunciar post Postado Julho 29, 2008 Olá pessoal, Possuo uma tabela WISHLIST que armazena apenas os campos NOME da lista de desejos e COMENTÁRIO. Possuo uma tabela de lista de desejos (WISHLIST_ITEMS), que armazena apenas os códigos dos produtos (PRODUTO_ID), e os campos DATA_INSERT, DATA_MODF. Bom, então tenho que pegar o "nome do produto" na tabela PRODUTO, o "nome da categoria" do produto em CATEGORIA, e o "valor do produto" em VALOR_PRODUTO, ou seja, em 3 tabelas diferentes ligadas apenas pelo campo PRODUTO_ID, para exibir a descrição completa para o cliente. Devo pegar também todos os dados da tabela WHISHLIST (NOME E COMENTÁRIO), mas sempre consigo todos os valores, tanto com o INNER quanto com o LEFT. PROBLEMAS: Vamos lá intonci... Com o INNER JOIN, de três registros consegui apenas dois. Reparei que peguei apenas os dois registros que estão em seqüência (WISHLIST_ITEM_ID 2 E WISHLIST_ITEM_ID 3), o outro registro, que foi cadastrado muito posteriormente, ficando com uma ID alta (WISHLIST_ITEM_ID 20), não apareceu por nada. Com o INNER JOIN, de três registros consegui apenas dois. Reparei que peguei apenas os dois registros que estão em seqüência, o outro registro, que foi cadastrado muito posteriormente, ficando com uma ID alta, não apareceu por nadaAchei que se a tabela WISHLIST_ITEMS se organizase pelo WHISHLIST_ID - o normal é pelo WISHLIST_ITEM_ID - organizando todos os produtos pelo ID da lista, o problema seria solucionado, mas não foi o que aconteceu. Com o LEFT JOIN consegui pegar todos os três registros (apareceram 3 linhas). Porém, no último produto, os campos que eu tanto precisava (nome da categoria, valor do produto, nome do produto) apareceram nulo... Esse foi meu comando SQL, apenas troquei o LEFT pelo INNER SELECT wi. * , w. * , pp.product_price, pc.category_id, cc.category_name, cc.category_publish FROM `jos_vm_wishlist_items` AS wi LEFT JOIN `jos_vm_wishlist` AS w ON w.wishlist_id = wi.wishlist_id LEFT JOIN `jos_vm_product_price` AS pp ON pp.product_id = wi.product_id LEFT JOIN `jos_vm_product_category_xref` AS pc ON pc.product_id = wi.product_id LEFT JOIN `jos_vm_category` AS cc ON cc.category_id = pc.category_id AND cc.category_publish = 'Y' WHERE w.wishlist_id = Nº DO CÓDIGO DA LISTA QUE ESTOU BUSCANDO EX.: 3 Me desculpem pelo tópico. Já até li algumas coisas sobre INNER E LEFT aqui no fórum, mas não consegui solucionar meu problema sozinho. Agradeço desde já, obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
ska_ska 0 Denunciar post Postado Julho 31, 2008 mrs.. aparentemente a query esta correta... se esta retornando valor nulo, provavelmente eh que você tem produtos na tabela wishlist que nao consta na tabela produtct_price..... ai naum tem jeito né!!!! faca um teste... crie chaves primarias e estrangeiras (sem aceitar nulo) nas tabelas envolvidas que vocë vai achar o seu erro. abs, ska! Compartilhar este post Link para o post Compartilhar em outros sites