Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

klawdyo

select first

Recommended Posts

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.