SQL查询修改需求:仅显示访问后创建用户的名称
修改后的SQL查询
要实现仅当用户创建时间晚于访问时间时才返回用户名的需求,只需在SELECT字段里对u.name添加条件判断即可,LEFT JOIN的关联逻辑保持不变(确保所有访问记录都能被返回)。
修改后的SQL语句:
SELECT v.visit_id, v.visit_datetime, v.page_url, v.user_id, CASE WHEN u.created_on > v.visit_datetime THEN u.name ELSE NULL END AS name FROM web_visits AS v LEFT JOIN user AS u ON v.user_id = u.id
逻辑说明
- 保留原
LEFT JOIN关联,保证所有web_visits表的记录都能被查询到 - 使用
CASE条件判断:当用户的created_on字段晚于访问时间v.visit_datetime时,返回用户的name;否则返回NULL(也可根据需求改成空字符串'')
内容的提问来源于stack exchange,提问作者sqllearner
相关产品推荐
相关产品推荐

