How do I make an INNER JOIN with condition?

0

I have the following SQL that only shows me properties that have a photo registered, as specified in the lines:

INNER JOIN fotos
    ON imoveis.id = fotos.cod

How to display properties with or without registered photos?

Follow the complete SQL

SELECT
    imoveis.id, fotos.foto, imoveis.titulo, imoveis.descricao, imoveis.vvenda, imoveis.vtemporada, imoveis.vanual, imoveis.status, imoveis.cod
    FROM
    imoveis
    INNER JOIN fotos
    ON imoveis.id = fotos.cod
    INNER JOIN tipo
    ON imoveis.tipo = tipo.cod
    INNER JOIN bairros
    ON imoveis.bairro = bairros.cd_bairro
WHERE imoveis.cod = '1015' AND imoveis.status = '1' GROUP BY imoveis.id ORDER BY imoveis.id DESC
    
asked by anonymous 26.07.2018 / 12:21

1 answer

3

You should use LEFT JOIN for the photo tables.

SELECT imoveis.id, fotos.foto, imoveis.titulo, imoveis.descricao, imoveis.vvenda, imoveis.vtemporada, imoveis.vanual, imoveis.status, imoveis.cod
FROM
imoveis
INNER JOIN tipo
ON imoveis.tipo = tipo.cod
INNER JOIN bairros
ON imoveis.bairro = bairros.cd_bairro
LEFT JOIN fotos
ON imoveis.id = fotos.cod
WHERE imoveis.cod = '1015' AND imoveis.status = '1' GROUP BY imoveis.id ORDER BY imoveis.id DESC
    
26.07.2018 / 12:28