Перевести MySql запрос в Laravel конструктор запросов - PullRequest
1 голос
/ 19 февраля 2020
SELECT apartment_id, COUNT(created_at) AS n_view,
DATE_FORMAT(created_at, '%Y-%m-%d') as day_view
FROM views
WHERE apartment_id=36 GROUP BY day_view
ORDER BY COUNT(created_at) DESC

как я могу перевести этот MySql запрос в Laravel построителе запросов?

Ответы [ 4 ]

1 голос
/ 19 февраля 2020
DB::table('views')
    ->selectRaw("apartment_id, COUNT(created_at) AS n_view, DATE_FORMAT(created_at, '%Y-%m-%d') as day_view")
    ->where("apartment_id", "=", "36")
    ->groupBy('day_view')
    ->orderBy('n_view', "DESC")
    ->get();
0 голосов
/ 19 февраля 2020

Проверьте Laravel документы на построитель запросов и посмотрите примеры, вы можете легко конвертировать SQL в построитель запросов:

use Illuminate\Support\Facades\DB;

DB::table('views')
    ->selectRaw("apartment_id, COUNT(created_at) AS n_view, DATE_FORMAT(created_at, '%Y-%m-%d') as day_view")
    ->where('apartment_id', '=', 36)
    ->groupBy('day_view')
    ->orderByRaw('COUNT(created_at) DESC')
    ->get();
0 голосов
/ 19 февраля 2020
$data = $this->views;
$data = $data->select(
    "apartment_id",
    DB::raw("COUNT(created_at) AS n_view"),
    DB::raw("DATE_FORMAT(created_at, '%Y-%m-%d') as day_view")
);
$data = $data->where("apartment_id", 36);
$data = $data->groupBy("day_view");
$data = $data->orderBy("created_at", "desc");
$data = $data->get();
0 голосов
/ 19 февраля 2020

Вы можете сделать это, используя App \ Views; использовать БД;

Views::select('apartment_id', DB::raw("COUNT(created_at) as n_view") ,DB::raw("DATE_FORMAT(created_at, '%Y-%m-%d') as day_view"))->where('apartment_id' ,36)->orderBy('n_view', 'desc')->get();
...