1
resposta

Fazer um SELECT que exiba o nome de múltiplas relações

No exemplo do exercício, para retornar a lista mostrando o nome da categoria ao invés do id utilizamos o seguinte código:

<?php
function listaProdutos($conexao) {
    $produtos = array();
    $resultado = mysqli_query($conexao, "select p.*, c.nome as categoria_nome from produtos as p join categorias as c on p.categoria_id = c.id");

    while($produto = mysqli_fetch_assoc($resultado)) {
        array_push($produtos, $produto);
    }
    return $produtos;
}
?>  

Mas se eu tivesse mais de uma relação, como por exemplo: Categoria A, Categoria B e Categoria C e tivesse que trazer o nome das três, como faria?

1 resposta

Olá Cristian,

Segue o exemplo com três categorias,

select p.*, cat_A.nome as categoria_A , cat_B.nome as categoria_B, cat_C.nome as categoria_C 

from produtos as p join categorias as cat_a on p.categoria_id = cat_a.id

p join categoria_B as cat_b on p.categoria_id = cat_b.id

p join categoria_C as cat_c on p.categoria_id = cat_c.id