mysql分组和排序而不使用最外面的order by

标签 mysql group-by

我正在尝试返回用户列表及其上次登录日期。我需要得到一些不会影响我的外部 order by 语句的东西,因为它是由用户选择对列表进行排序的参数动态填充的。另一件事是存储登录时间的表需要 2 个字段来链接到用户表:user_id 和 user_type。

table_admin
field: id, name

table_logs
field: id, user_id, user_type, login_date

*table_admin.id = table_logs.user_id

table_logs.user_type 需要为“admin”*

我需要从 table_admin 中提取所有管理员用户及其上次登录日期(如果日志表中没有记录也需要工作),日志表中的 user_type 将是“admin”。

感谢您的宝贵时间。

SELECT SQL_CALC_FOUND_ROWS admins.*,ld2.ip,ld2.login_date as last_login 
FROM admins 
LEFT JOIN ( 
    SELECT * FROM log_logins WHERE user_type = "admin" ORDER BY login_date DESC 
) as ld2 ON (ld2.user_id = admins.id) 
WHERE 1 
GROUP BY user_id 
ORDER BY admins.id DESC LIMIT 0,40

这是我到目前为止所拥有的,但如果日志表中没有条目,它就不会获取结果。

最佳答案

这是一个带有聚合的连接:

select a.name, 'admin' as userType, max(l.login_date) as lastLoginDate
from admin a left outer join
     logs l
     on a.id = l.id and
        l.user_type = 'admin'
group by a.name

关于mysql分组和排序而不使用最外面的order by,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14386763/

相关文章:

mysql - SQL 查询根据时间戳选择按小时(列)和工作日(行)分组的值

python - pandas - 创建客户移动矩阵

mysql - SQL如何获取数据而不将其包含在group by中

Scala:如果 Map 是从 GroupBy 创建的,为什么 Map 中的可变值不能更改

python - 并发进程中的Django select_for_update函数

java - Mybatis:将部分SQL映射到POJO内部的HashMap

php - MySQL使用LIKE命令在分号之间查找

sql - 在 SELECT 中包含一个属性而不必在 GROUP BY 中包含它

mysql - MONGODB Mongoimport 可能加速?

php - 排除任何与 MYSQL 全文搜索无关的内容