Как вернуть общее количество постов в 6 разных таблицах - PullRequest
0 голосов
/ 23 октября 2019

У меня есть 6 различных таблиц, таких как «mst_article», «mst_meetup», «mst_question», «mst_job», «mst_education», «mst_event», и я должен вернуть общее количество сообщений во всех этих таблицах, используя user_id_fk в качестве user_idи статус = 1. Я использую это

$u_activity_count = DB::table('mst_article as article','mst_meetup as meetup','mst_question as question','mst_job as job','mst_education as education','mst_event as event')
            ->where('user_id_fk',$user_id)
            ->where('status', '=', '1')
            ->count();
            dd($u_activity_count); 

, но каждый раз, когда он возвращает счет: 3. Я не знаю, где я делаю неправильно.

Ответы [ 2 ]

0 голосов
/ 23 октября 2019

Я пробовал этот запрос для получения общего количества сообщений в нескольких таблицах. Мой PHP с кодом MySQL приведен ниже:

    // Create connection
        $conn = new mysqli($servername, $username, $password, $dbname);
        // Check connection
        if ($conn->connect_error) {
           die("Connection failed: " . $conn->connect_error);
        } 
        $sql = "Select Sum(count) as totalCount from 
    (
        Select count(*) as count from table1 where user_id_fk=1 and status=1
        Union 
        Select count(*) as count from table2 where user_id_fk=1 and status=1
        Union 
        Select count(*) as count from table3 where user_id_fk=1 and status=1
        Union 
        Select count(*) as count from table4 where user_id_fk=1 and status=1
        Union 
        Select count(*) as count from table5 where user_id_fk=1 and status=1
        Union 
        Select count(*) as count from table6 where user_id_fk=1 and status=1
    ) as f;";
      if ($result=mysqli_query($con,$sql))
  {
  // Fetch one and one row
  while ($row=mysqli_fetch_row($result))
    {
    echo 'totalCount='.$row[0];
    }

}

Если у вас есть какие-либо вопросы, пожалуйста, спрашивайте меня свободно. Спасибо.

0 голосов
/ 23 октября 2019

Вместо использования необработанного запроса, который лучше избегать, вы можете использовать функцию count () для моделей отдельно, а затем добавить их. Рассмотрим что-то вроде этого:

$count = Model::where('user_id_fk', $user_id)->where('status', '1')->count();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...