Как сделать запрос БД в Laravel 6 для сложного запроса? - PullRequest
0 голосов
/ 03 марта 2020

Мой запрос:

SELECT DATE(`main_date`) `date`, SUM(`total`) `sum_value` FROM 
SELECT db1.main_date, db2.total FROM database_1 db1 INNER JOIN database_2 db2 ON db1.id = db2.main_id 
WHERE (user_id LIKE 111 AND DATE(`main_date`) LIKE '2020-01-01')) AS totals 
GROUP BY DATE(`main_date`);

Он отлично работает в SQL, однако в Laravel я мог бы сделать эту часть:

$db->select(DB::raw("DATE(`main_date`) `date`, SUM(`total`) `sum_value`")
->groupBy(DB::raw("DATE(`main_date`)")
->get();

Но где разместить главный Самая важная часть:

FROM 
    SELECT db1.main_date, db2.total FROM database_1 db1 INNER JOIN database_2 db2 ON db1.id = db2.main_id 
    WHERE (user_id LIKE 111 AND DATE(`main_date`) LIKE '2020-01-01')) AS totals

Я действительно понятия не имею об этом. :( Спасибо за вашу поддержку!

1 Ответ

0 голосов
/ 03 марта 2020

Попробуйте использовать фасад DB с вашим запросом, например:

DB::select('SELECT DATE(`main_date`) `date`, SUM(`total`) `sum_value` FROM 
SELECT db1.main_date, db2.total FROM database_1 db1 INNER JOIN database_2 db2 ON db1.id = db2.main_id 
WHERE (user_id LIKE 111 AND DATE(`main_date`) LIKE '2020-01-01')) AS totals 
GROUP BY DATE(`main_date`)')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...