I have this doubt of what it is preferable to do when I need data from the two tables to get the result.
I always did the comparison in PHP, but I learned the SQL relationship commands that could help. What is the most correct way to do it, pertaining to runtime, pattern, and performance?
I used to do this:
<?php
$consultaRecomendados=$con->prepare("SELECT * FROM hf_recomendados");
$consultaRecomendados->execute();
$resultadoRecomendados=$consultaRecomendados->fetchAll();
foreach($resultadoRecomendados as $produtoRecomendado){
$contultaProdutoRecomendado=$con->prepare("SELECT * FROM hf_produtos WHERE id=:id");
$contultaProdutoRecomendado->execute(array(":id"=>$produtoRecomendado['idProduto']));
$resultadoProdutoRecomendado=$contultaProdutoRecomendado->fetch();
echo $resultadoProdutoRecomendado['nome'];
}
?>
And I started doing this:
<?php
$contultaRecomendados=$con->prepare("SELECT * FROM hf_recomendados r JOIN hf_produtos p
ON r.idProduto=p.id");
$contultaRecomendados->execute();
$resultadoRecomendados=$contultaRecomendados->fetchAll();
foreach($resultadoRecomendados as $produtoRecomendado){
echo $produtoRecomendado['nome'];
}
?>
Is there any better or more correct way? What technical considerations should I have?