2
respostas

Select dentro do outro

Bom dia, estou com a seguinte dúvida: Preciso retornar algumas imagens, que estão no banco. Pra isso, preciso de 2 selects. O primeiro me retorna o id_galeria, o segundo pega imagem de acordo com o id_galeria (Que é passado pelo primeiro). Alguem pode me ajudar?

  protected function mostrarImagemGaleria($id_categoria, $id_galeria)
    {
              $sql = "SELECT id_galeria FROM galerias WHERE id_categoria = ".$id_categoria.";";
        $sql2 = "SELECT * FROM galeria_fotos WHERE id_galeria = 12;";


        $resultado = Conexao::getInstance()->executeS($sql);
        return $this->getListaRegistros($resultado);

    }
2 respostas

A primeira consulta retorna o ID galeria de acordo com a categoria informada.

Tente fazer desta forma:

$sql = "SELECT * FROM galeria_fotos WHERE id_galeria in (SELECT id_galeria FROM galerias WHERE id_categoria = ".$id_categoria.")";

Pode usar INNER JOIN para isso, sem a necessidade de um subselect

$sql = "SELECT * FROM galeria_fotos gf 
INNER JOIN galerias g on g.id_galeria = gf.id_galeria
WHERE g.id_galeria = ".$id_categoria