klawdyo 0 Denunciar post Postado Outubro 25, 2009 tenho uma tabela imoveis, e uma tabela imagens. na tabela imoveis, tenho um campo imagem, onde guardarei o nome(ou id) da imagem principal, que será utilizada como miniatura. na tabela imagens, guardo todas as imagens, inclusive a miniatura. como fazer um select que, caso o campo imoveis.imagem for vazio, eu pegar o primeiro resultado da busca na tabela imagens? algo assim: SELECT if(imv.imagem=null, max(img.nome_imagem), imv.imagem) as thumb from imoveis imv inner join imagens img on (imv.id=img.imoveis_id) group by imv.id desse jeito aí funciona mais ou menos. mas acho que o max nao é o ideal. talvez algum first. e outra coisa. a verificação do if não está ocorrendo, ele está retornando a primeira imagem, independentemente de imv.imagem estiver ou não definida. Compartilhar este post Link para o post Compartilhar em outros sites
Douglas 6 Denunciar post Postado Outubro 25, 2009 Ja tentou usar um subselect? Compartilhar este post Link para o post Compartilhar em outros sites
giesta 29 Denunciar post Postado Outubro 25, 2009 nao entendi, você quer mostrar uma imagem mesmo q nao tenha imagem? Compartilhar este post Link para o post Compartilhar em outros sites
klawdyo 0 Denunciar post Postado Outubro 25, 2009 Não. É pq tenho dois lugares onde terei a imagem. A tabela imagens, guarda todas os endereços de todas as imagens do sistema. E na tabela principal, dos imoveis, tbm tem um campo pra guardar a imagem, que será a principal imagem daquele imóvel específico. Se, não tiver nenhuma imagem definida na tabela dos imoveis, aih eu pego a primeira imagem daquele imovel na tabela das imagens. Sacas? No momento estou trazendo os dois valores. select imv.miniatura as imv_imagem, img.imagem as img_imagem from imoveis imv inner join imagens img on (imv.id=img.imoveis_id) group by imv.id; E depois faço o tratamento via programação. Só que eu quero fazer diretamente na sql. Só que não está funcionando, conforme dito na mensagem principal. Compartilhar este post Link para o post Compartilhar em outros sites
KUROL3 3 Denunciar post Postado Outubro 26, 2009 ve se a idéia... funciona.. abraco KUROLE select IF (imv.miniatura is null, (select nome_imagem FROM tabela_de_imagem img WHERE imoveis.id = img.imoveis_id LIMIT 1), imv.miniatura as imv_imagem) from imoveis group by imv.id; Compartilhar este post Link para o post Compartilhar em outros sites