tigu17 0 Posted December 3, 2010 Report Share Posted December 3, 2010 Boa noite, tenho uma duvida semelhante ao topico anterior mas não consegui resolver a minha duvida. Eu tenho uma tabela produto e outra promoção as duas tem como chave primaria o codigo de produto. Eu faço um left join da tabela produto com promocao, o problema é que esta junção só retorna o codigo de produto dos produtos com promoção os outros ficam sem codigo. Ja tentei utilizar o case e full outer join mas sempre sem sucesso. $sql = mysql_query("select CC.codProduto, CC.designacao, CC.preco, CC.imagem, CC.descricao, CC.tipoProduto, CP.codProduto, CP.desconto from produto CC LEFT JOIN promocao CP ON CC.codProduto = CP.codProduto WHERE CC.designacao LIKE '%".$palavra."%'"); . Desde já obrigado Link to post Share on other sites
Rechousa 70 Posted December 4, 2010 Report Share Posted December 4, 2010 O que é que pretendes exactamente? Se é obter apenas os produtos que têm promoção então precisas do INNER JOIN. Se queres obter a listagem de todos os produtos e conseguires identificar quais os que têm promoção ou não, então deves usar o LEFT JOIN. Repara que no teu código estás a obter duas vezes o código do Produto, na 1a e na 7a coluna, só que na 1a coluna recebes sempre (pois estás a consultar a tabela Produto) e na 7a coluna apenas recebes quando esse artigo tem promoção, ou seja, quando os registos da 1a tabela (produto) condizem com os da 2a (promocao). Podes usar a 7a coluna para sber se ele tem promoção, mas aconselho-te a mudar o nome à coluna, exemplo: $sql = mysql_query("select CC.codProduto, CC.designacao, CC.preco, CC.imagem, CC.descricao, CC.tipoProduto, CP.codProduto AS CodProdutoPromocao, CP.desconto from produto CC LEFT JOIN promocao CP ON CC.codProduto = CP.codProduto WHERE CC.designacao LIKE '%".$palavra."%'"); Desta forma, a coluna CodProdutoPromocao vai estar preenchida com o mesmo código da coluna CodProduto quando houver promoção. Quando não houver... Vem a NULL Pedro Martins Sharing is Knowledge! http://www.linkedin.com/in/rechousa Link to post Share on other sites
tigu17 0 Posted December 4, 2010 Author Report Share Posted December 4, 2010 Obrigado O problema estava nos produtos sem promoção que nao aparecia o codProduto, eu sabia a causa do erro e só nao sabia resolver e apenas bastava utilizar o AS. Obrigado mais uma vez Link to post Share on other sites
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now