Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como agrupar dados de matriz retornados pela consulta de junção esquerda em php?


Embora você possa gerar a matriz desejada em um único loop, prefiro executar duas consultas. Primeiro, busque todas as marcas em uma matriz e adicione uma matriz de produtos vazia a cada marca. Em seguida, busque todos os produtos e atribua-os à marca relacionada.

Como não sei qual biblioteca de banco de dados você está usando, aqui algum tipo de pseudocódigo:
$data = [];

$brandResult = $db->query("SELECT id, name FROM tbl_brand");
while ($row = $brandResult->fetchObject()) {
    $row->product_names = [];
    $data[$row->id] = $row;
}

$productResult = $db->query("SELECT id, brand_id, p_name FROM tbl_products");
while ($row = $productResult->fetchObject()) {
    $data[$row->brand_id][$row->id] = $row->p_name;
}