sql >> Databáze >  >> RDS >> Mysql

PHP SQL Join Query sloučit obsah v Multi-Array

Můžete to udělat kombinací PHP a MySQL. Změňte svůj dotaz na toto:

SELECT section_titel as t1, GROUP_CONCAT(sub_section_titel) as t2 
FROM sections LEFT JOIN sub_sections ON section_id = sId
GROUP BY t1
HAVING t2 IS NOT NULL

Získáte tak výsledkovou tabulku:

t1              t2
Section One     SubOne,SubTwo
Section Three   SubThree

(Pokud chcete výsledek pro Section Two , odstraňte HAVING t2 IS NOT NULL stav z dotazu)

Pak ve vašem PHP (předpokládám mysqli s připojením $conn )

$result = mysqli_query($conn, $sql) or die(mysqli_error($conn));
$out = array();
while ($row = mysqli_fetch_array($result)) {
   $out[] = array('t1' => $row['t1'], 't2' => explode(',', $row['t2']));
}
print_r($out);

Výstup:

Array
(
    [0] => Array
        (
            [t1] => Section One
            [t2] => Array
                (
                    [0] => SubOne
                    [1] => SubTwo
                )    
        )

    [1] => Array
        (
            [t1] => Section Three
            [t2] => Array
                (
                    [0] => SubThree
                )
        )
)


  1. Jak mohu použít PDO k načtení pole výsledků v PHP?

  2. Zobrazení dřívějšího protokolu dotazů - MySQL

  3. Optimalizace dotazu na využití indexu MySQL

  4. Používejte relační databáze MySQL na Ubuntu 8.04 (Hardy)