sql >> Databasteknik >  >> RDS >> Mysql

Hur grupperar man arraydata som returneras av left join-fråga i php?

Även om du kan generera den önskade arrayen i en enda slinga, skulle jag hellre köra två frågor. Hämta först alla varumärken i en array och lägg till en tom produktarray till varje varumärke. Hämta sedan alla produkter och tilldela dem till det relaterade varumärket.

Eftersom jag inte vet vilket DB-bibliotek du använder, här någon form av pseudokod:

$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. SQL Server Express vs express localdb

  2. mysql + uppdatering topp n

  3. Hur man returnerar frågeresultat som en kommaseparerad lista i MySQL

  4. Hur startar man spring-boot-appen utan att vara beroende av databasen?