Как подсчитать общее количество комментариев и общее количество лайков, используя объединенные таблицы в запросе codeigniter - PullRequest
0 голосов
/ 27 декабря 2018

Я пытаюсь получить все посты в своей базе данных социальных сетей.

Он получает весь список публикаций информации о пользователях, комментариев и лайков.

Теперь я успешно получилобщее количество комментариев к каждому сообщению, но у него возникли проблемы с подсчетом всех лайков каждого сообщения.

Вот мой код.

<?php

public function get_all_post(){

  $category = $this->input->post('category', true);
  
  $this->db->select('u.*,c.parent_id,b.post_id, count(b.ID) as total, count(c.ID) as totalLIKEs');
  $this->db->where('u.category', $category);
  $this->db->order_by("u.create_at", "DESC")
  ->from('gb_post as u')
  ->join('gb_comments as b', 'u.ID = b.post_id', 'LEFT')
  ->join('gb_likes as c', 'u.ID = c.parent_id', 'LEFT')
  ->group_by('u.ID');
  
  $this->db->limit(10);
  $result = $this->db->get();

  if($result->num_rows() > 0){
    return $result->result_array();
  } else {
    return false;
  }

}
?>

Вот мои таблицы SQL

Почтовый стол

+----+---------------+-----------------+
| ID | post_content  |   user_email    |
+----+---------------+-----------------+
|  1 | post1         | user1@email.com |
|  2 | post2         | user2@email.com |
|  3 | post3         | user3@email.com |
+----+---------------+-----------------+

Таблица комментариев

+----+---------+-----------------+-------------------+
| ID | post_id | comment_content |   reader_email    |
+----+---------+-----------------+-------------------+
|  1 |       3 | test comment1   | reader1@email.com |
|  2 |       3 | test comment2   | reader2@email.com |
|  3 |       2 | test comment3   | reader3@email.com |
|  4 |       1 | test comment4   | reader3@email.com |
+----+---------+-----------------+-------------------+

И мойТаблица лайков

+----+----------+-------------------+
| ID | post_id  |   reader_email    |
+----+----------+-------------------+
|  1 |        3 | reader1@email.com |
|  2 |        3 | reader2@email.com |
|  3 |        3 | reader7@email.com |
|  4 |        3 | reader3@email.com |
+----+----------+-------------------+

Пример поста с идентификатором 3 будет иметь в общей сложности 2 комментария и 4 лайка.

Проблема заключается в количестве totalComment также считается totalLIKEs

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...