无法从表中获取最后一条记录,我的表中有许多记录,我只需要获取最后一条记录。
我有这个疑问:
我需要获取上次连接查询记录
->leftJoin('vtask as avt', function($q) {
$q->on('avt.vehicle_id', '=', 't.vehicle_id')
->on('avt.shift_start', '<=', 'dqe.time')->orderBy('avt.shift_start', 'desc');
})
->leftJoin('vreplace as avr', function($q) {
$q->on('avr.vehicle_id', '=', 't.vehicle_id')
->on(DB::raw("avr.time"), '>=', 'dqe.time')->orderBy('avr.time', 'desc');
})
DB::table('dqevent','dqe')
->join('transport as t','t.id', '=', 'dqe.transport')
->join('vehicle as v','v.id', '=', 't.vehicle_id')
->leftJoin('vtask as avt', function($q) {
$q->on('avt.vehicle_id', '=', 't.vehicle_id')
->on('avt.shift_start', '<=', 'dqe.time')->orderBy('avt.shift_start', 'desc');
})
->leftJoin('vreplace as avr', function($q) {
$q->on('avr.vehicle_id', '=', 't.vehicle_id')
->on(DB::raw("avr.time"), '>=', 'dqe.time')->orderBy('avr.time', 'desc');
})
->leftJoin('ar as r','r.id', '=', DB::raw('COALESCE(avt.route_id, avr.route_id)'))
->leftJoin('driver as ad', 'ad.id', '=', DB::raw('COALESCE(avt.driver_id, avr.driver_id)'))
->selectRaw(
"dqe.id,
r.short_name,
dqe.lat,
dqe.lon
")
->orderBy('dqe.id','desc')->paginate(15);
从我的表中获取最后一条记录:)
2条答案
按热度按时间vaqhlq811#
要从“dqevent”表返回最后一条记录,可以使用
ORDER BY
、LIMIT
和first
修改查询:您可以阅读PostgreSQL示例中的SQL语法规则(从SQL99 STD的Angular 来看,几乎与MySQL,Oracle和MS SQL相同)。
SELECT with WHERE filtration
LIMIT and OFFSET pagination
ORDER BY ASC/DESC sorting
GROUP BY and HAVING aggregation
UNION / INTERSECT / EXCEPT combination
JOIN joining和more joining
我知道你可能会使用mybatis,doctrine orm,linq,yalinqo,timetoogo pinq,hibernate + spring data jpa,jooq或laravel查询构建器框架,但它们只是SQL99子方言的语法糖。
brtdzjyr2#
我更改了代码并在表中插入了新索引
迁移文件
控制器