sql >> Database >  >> RDS >> Mysql

Hoe array-gegevens te groeperen die zijn geretourneerd door een left join-query in php?

Hoewel u de gewenste array in een enkele lus kunt genereren, zou ik liever twee query's uitvoeren. Haal eerst alle merken op in een array en voeg een lege productarray toe aan elk merk. Haal vervolgens alle producten op en wijs ze toe aan het gerelateerde merk.

Aangezien ik niet weet welke DB-bibliotheek je gebruikt, hier een soort pseudo-code:

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


  1. MySQL:negeer een geselecteerde kolom bij gebruik van DISTINCT

  2. Hoe importeer ik een Excel-bestand in SQL Server?

  3. SQL:Hoe tekenreeks uit te voeren is niet gelijk aan

  4. SQL Server AlwaysOn (Beschikbaarheidsgroep) Architectuur en stapsgewijze installatie -2