Лучшее практическое значение количества запросов в Laravel?

#php #mysql #laravel

#php #mysql #laravel

Вопрос:

У меня есть несколько таблиц table Analytics :

 room_id | diag_in | indicator_in | etc..

22      | 0       |    1
23      | 1       |    0
23      | 1       |    1
22      | 0       |    1
  

И я хочу вывести :

 room_id | total  

22      | 2       
23      | 3      
  
 SELECT room_id,SUM(total) AS total FROM(

SELECT room_id, COUNT(indicator_in) total
FROM Analytic 
WHERE indicator_in='1'
GROUP BY room_id
UNION
SELECT room_id, COUNT(`diag_in`) total
FROM Analytic 
WHERE diag_in='1'
GROUP BY room_id
) abc
GROUP BY room_id
  

Это работает… но как упростить код, если у меня в таблице 23 столбца, и я буду реализовывать в Laravel, это такой длинный код …. , Как упростить код?

Ответ №1:

Вы можете просто использовать group by и sum для подсчета обоих столбцов вместе.

В SQL:

 SELECT room_id, (SUM(indicator_in)   SUM(diag_in)) as total
FROM Analytic
GROUP BY room_id
  

Использование Laravel Query Builder:

 DB::table('Analytic')
    ->groupBy('room_id')
    ->select(
        'room_id',
        DB::raw('(SUM(indicator_in)   SUM(diag_in)) as total')
    )
    ->get();
  

Комментарии:

1. Черт, ты оказался быстрее меня. :/ Ты можешь использовать эту скрипку с db

2. хахаха, о чем я думал, так это о том, чтобы сделать такой сложный query…so спасибо