Mysql
 sql >> база данни >  >> RDS >> Mysql

Преминаване през MySQL лявото присъединяване в php срещу 2 отделни заявки

Едно запитване е добре. Както го имате, и вероятно по-добрият вариант. Трябва да разберете кое е по-ефективно, за да оставите MySQL да поеме напрежението или мрежата и PHP да поемат напрежението. Много по-добре е да оставите PHP да поеме напрежението от MySQL, но когато MySQL има „вградени“ функции, като например групирането, което желаете, след това оставете MySQL и спестете мрежовия трафик.

За да работи това:добавете "ORDER BY p.post_id, pc.comment_id" към вашата заявка - това подрежда резултатите.

След това, ако трябва да вградите в масив (въпреки че може да сте в състояние да обработвате директно, без да използвате масив, методът ще бъде подобен):

$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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Сравняване на редове в таблицата за разлики между полетата

  2. Непрекъснато поточно поточно произволно аудио от базата данни

  3. Mysql създава база данни с ново местоположение на базата данни

  4. Изграждане на защитен публичен API с PHP/MYSQL

  5. Експортирайте данни от MySQL база данни