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

Gå gennem MySQL til venstre, deltag i php vs. 2 separate forespørgsler

Én forespørgsel er fin. Som du har det, og sandsynligvis det bedre valg. Du skal finde ud af, hvad der er mere effektivt, for at lade MySQL tage belastningen, eller netværket og PHP tage belastningen. Det er meget bedre at lade PHP tage belastningen end MySQL, men hvor MySQL har "indbyggede" funktioner, såsom den gruppering du ønsker, så forlad MySQL og gem netværkstrafikken.

For at få dette til at fungere:tilføj "ORDER BY p.post_id, pc.comment_id" til din forespørgsel - dette får resultaterne i orden.

Så, hvis du skal bygge ind i et array (selvom du muligvis kan behandle direkte uden at bruge et array, ville metoden være ens):

$lastPostID = 0;
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    if ($lastPostID <> $row['post_id']) {
        $lastPostID  = $row['post_id'];
        $answers[$lastPostID] = array('post_id' => $row['post_id'],
                                      'author_id' => $row['author_id'],
                                      etc
                                      'comments' => array() );
    }
    $answers[$lastPostID]['comments'][] = array('comment_id' => $row['comment_id'], 'coment' => $row['comment'] etc);
}


  1. Send brugerens geolokation til serveren hvert minut

  2. Kan ikke hente række-id ved hjælp af pdo

  3. Korrekt indeksering af Join-Where-Group Ved at vælge forespørgsler undgå at bruge midlertidig; Bruger filsortering

  4. Stop MySQL-tjenestevinduer