sql练习题

1. mysql查询

两张表:
user用户表:id (主键,自增),name
buy 购买记录表: id (主键,自增),userid(关联user表的id),time(购买时间)

要求:假设每个用户都有购买记录,查询每个用户的第一次购买记录。

1)用最早购买时间作为判断条件
select b.userid,min(u.`name`) as `name`,min(b.`time`) as `time` 
from user u inner join buy b 
on u.id=b.userid 
group by b.userid;
2) 用每个用户第一条购买记录id做判断。
select b.userid,u.`name`,b.`time` 
from user u inner join 
(select * from buy where id in 
(select min(id) from buy group by 
userid)) b 
on u.id=b.userid;
如果想将没有购买记录的客户也列出来,那么上述两个语句中的inner join请该为left join。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 表结构: 题目:1、 查询Student表中的所有记录的Sname、Ssex和Class列。2、 查询教师所有的单...
    danr小胖阅读 580评论 0 0
  • MySQL 数据库常用命令 1、MySQL常用命令 create database name; 创建数据库 use...
    55lover阅读 5,067评论 1 57
  • 深圳,没有阳光的下午,坐在电脑前,手中的笔,紧紧被自己握着,稍微整理一下思绪………… 离上次动笔写笔记,也不知过了...
    浮宸阅读 361评论 2 1
  • 头条号CEO张一鸣在之前的头条大会上,已经提出了2018年头条号重点扶持的就是“千人百万粉计划”。张一鸣表示,今日...
    乐观助手阅读 635评论 0 0
  • 我不知道心底的阴暗到底多重 也不知道是否能够摆脱这困境 我只知道我还没有突然长大 就发觉自己已经一夕忽老了 我明白...
    爱酱lll阅读 495评论 30 17

友情链接更多精彩内容