I have a product table that has a foreign key that is the category and a table that stores the name of the product photos. I usually make two queries: one to retrieve the category name and some product fields and another to collect an image of the product. In the product query I have:
$consultaProdutos = $_db->select("SELECT c.categoria, p.idproduto, p.nome, p.valor FROM categoria AS c, produto as p WHERE p.ativo = 1 AND p.idcategoria = c.idcategoria");
The other query I perform within the result of the first query being it:
foreach ($consultaProdutos as $key => $rowProduto) {
$consultaFoto = $_db->select("SELECT * FROM foto_produto WHERE idproduto = :idproduto LIMIT 1", array(':idproduto' => $rowProduto->idproduto ));
$fotoProduto = $consultaFoto[0];
//html aqui
Where in the $ photoProduct variable there is the query result for the photo. However I believe it is more efficient if there is only one query.