gpt4 book ai didi

php - MySQL JOIN 和 LIMIT TO 1

转载 作者:行者123 更新时间:2023-11-29 16:26:08 25 4
gpt4 key购买 nike

几乎完美的代码...但是它从 actions_logs 表中获取重复项,因为每个用户都有多个用于历史记录的登录条目。

我已经测试了很多选项,但网络上没有有效的示例。

sequelpro with current result


select `users`.* from `users` left join `action_logs` on `action_logs`.`user_id` = `users`.`id` and `action_logs`.`type` = 'login' order by `action_logs`.`created_at` desc, `id` desc

预期结果将是按登录日期排序的完整用户列表。

该 sql 是 Laravel 代码的结果:

laravel code

if($value == 'last_login') {
return $this->builder->select('users.*')
->leftJoin('action_logs', function ($join) {
$join->on('action_logs.user_id', '=', 'users.id')
->where('action_logs.type', '=', 'login');
})->orderBy('action_logs.created_at', $this->request->get('sort'))
->orderBy('id', $this->request->get('sort'));
}

最佳答案

您应该使用 DISTINCT 查询,但为了删除重复结果,您应该删除选择中的“created_at”,因为每个登录都是在不同时间创建的。

关于php - MySQL JOIN 和 LIMIT TO 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54227409/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com