Mysql
 sql >> Database >  >> RDS >> Mysql

Come raggruppare i dati dell'array restituiti dalla query di join sinistro in php?

Sebbene tu possa generare l'array desiderato in un singolo ciclo, preferirei eseguire due query. Per prima cosa prendi tutti i marchi in un array e aggiungi un array di prodotti vuoto a ogni marchio. Quindi recupera tutti i prodotti e assegnali al relativo marchio.

Dal momento che non so quale libreria DB stai usando, ecco una specie di pseudo codice:

$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;
}