我正在Laravel网站上编写档案函数,我无法弄清楚如何使用Laravel的查询构建器复制此查询。我的数据库是“存档”和“实时”。
INSERT INTO archive.daily_by_post
SELECT post_date, user_id, post_id
FROM live.clicks
WHERE timestamp BETWEEN '2014-07-28 00:00:00' AND '2014-07-28 23:59:59'
GROUP BY user_id, post_id;
我应该使用其他方法吗?这甚至可能吗?
答案 0 :(得分:0)
当然可以。
但是,您需要使用原始语句OR Connection::insert()
与Query\Builder
混合构建查询,如下所示:
$from = '2014-07-30 00:00:00';
$till = '2014-07-30 23:59:59';
$select = DB::table('live.clicks')
->select('post_date', 'user_id', 'post_id')
->whereBetween('updated_at', [$from, $till]) // empty array will do
->groupBy('user_id', 'post_id');
$statement = 'INSERT INTO archive.daily_by_post (specify fields if necessary) '
. $select->toSql();
DB::insert($statement, $select->getBindings());