gpt4 book ai didi

mysql 使用 leftjoin 选择两个匹配行的最新时间戳

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

我在 MySQL 中有两个表。

logs 表包含列:time、user_id、event_type

users 表有列:email, id

每次用户登录到生成日志文件的系统时,event_type 列值都会被记录为值“/dashboard”。

此处的 select 语句将在他们登录时显示我的每次...

SELECT users.email, logs.time 
FROM users
LEFT JOIN logs ON users.id=logs.user_id
WHERE logs.event_type LIKE '/dashboard'
GROUP BY email, time;

...但我想返回显示每个用户第一次登录的电子邮件地址和时间戳的结果集。

最佳答案

您可以为此使用 min:

SELECT users.email, min(logs.time)
FROM users
INNER JOIN logs ON users.id=logs.user_id
WHERE logs.event_type LIKE '/dashboard'
GROUP BY email;

也不需要 outer join——您在 where 标准中否定了它。如果要保留 outer join 并返回可能在 logs 表中没有匹配记录的用户,则将条件移动到 on :

SELECT users.email, min(logs.time)
FROM users
LEFT JOIN logs ON users.id=logs.user_id
AND logs.event_type LIKE '/dashboard'
GROUP BY email;

关于mysql 使用 leftjoin 选择两个匹配行的最新时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38986249/

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