SQL VQ17 查询2022年以来刷题用户的用user_id和毕业院校

SQL VQ17 查询2022年以来刷题用户的用user_id和毕业院校

题目 : https://www.nowcoder.com/practice/ea7d9e67f14e4cfc860bbbe9f65420a6?tpId=341

数据

drop table if exists questions_pass_record;
drop table if exists user_info;

CREATE TABLE `questions_pass_record` (
  `user_id` int NOT NULL,
  `question_type` varchar(32) NOT NULL,
  `device` varchar(14) NOT NULL,
  `pass_count` int NOT NULL,
  `date` date NOT NULL
);

CREATE TABLE `user_info` (
  `user_id` int NOT NULL,
  `graduation_year` int NOT NULL,
  `register_time` datetime NOT NULL,
  `gender` varchar(14),
  `age` int,
  `university` varchar(32) NOT NULL 
);

INSERT INTO questions_pass_record VALUES(101, 'java', 'app', 2, '2020-03-01');
INSERT INTO questions_pass_record VALUES(102, 'sql', 'pc', 15,'2021-07-07');
INSERT INTO questions_pass_record VALUES(102, 'python', 'pc', 9, '2021-04-09');
INSERT INTO questions_pass_record VALUES(104, 'python', 'app', 3,'2022-03-17');
INSERT INTO questions_pass_record VALUES(105, 'sql', 'pc', 60, '2018-08-15');
INSERT INTO questions_pass_record VALUES(104, 'sql', 'pc', 20, '2019-05-15');

INSERT INTO user_info VALUES(101, 2022, '2021-03-01 11:22:33', 'male', 27, '北京大学');
INSERT INTO user_info VALUES(102, 2023, '2022-05-09 09:50:34', 'female', 31,'清华大学');
INSERT INTO user_info VALUES(103, 2021, '2022-03-09 15:10:50', 'male', null, '复旦大学');
INSERT INTO user_info VALUES(104, 2020, '2018-08-12 10:00:00', null, 23,'墨尔本大学');
INSERT INTO user_info VALUES(105, 2022, '2020-11-09 22:01:03', 'female', 26, '北京大学');
INSERT INTO user_info VALUES(210, 2022, '2022-03-09 01:07:09', 'male', 20, '上海交通大学');

需求

对于 2022 年以来有刷题的用户,查询user_id 和毕业院校

查询结果 :

user_id|university
104|墨尔本大学

解决

思路 :

  • 2022 年以来有刷题 , 说明查询 2022年以后的刷题记录
  • 有这些记录 , 通过用户id 就能查到用户消息
select t1.user_id,
    t1.university
from user_info t1 join questions_pass_record t2
    on t1.user_id = t2.user_id
where year(t2.date) >= 2022;

猜你喜欢

转载自blog.csdn.net/qq_44226094/article/details/130021846
今日推荐