目录
第1关:查询每个选手的信息及其提交的解答信息,没做题的选手不显示
第2关:查询做了1001题且耗时大于500(time)的选手信息
第3关:查询所有选手信息及其提交的解答信息,没做题的选手也要显示
第4关:查询每个选手的信息、交的题目、和提交的结果,没做题的选手不显示
第5关:用嵌套查询查找和problem_id为 1026 的题目属于同一个比赛的题目信息
第6关:用连接查询查找和problem_id为 1026 的题目属于同一个比赛的题目信息
第7关:用 EXISTS 实现查询做了 1032 号题的选手信息
第8关:用NOT EXISTS实现查询没做 1032 号题的选手信息
第9关:用 EXISTS 实现查询和problem_id为 1026 的题目属于同一个比赛的题目信息
第10关:用 NOT EXISTS 实现查询参与过所有比赛的选手信息
如果对你有帮助的话,不妨点赞收藏关注一下吧,爱你么么哒😘❤️❤️❤️
第1关:查询每个选手的信息及其提交的解答信息,没做题的选手不显示
任务描述
查询每个选手的信息及其提交的解答信息,没做题的选手不显示 (查询结果仅显示前50条,即在查询语句末尾加LIMIT 50)
相关知识
1、users为选手信息表; users表如下图(仅显示前几条):
现已构建users表,结构信息如下:
2、solution为选手提交的题目解答 solution表如下图(仅显示前几条):
现已构建solution表,结构信息如下:
开始你的任务吧,祝你成功!
USE `sqlexp-sztuoj`; #请在此处添加实现代码,在语句末尾加LIMIT 50,即可显示查询结果前50条。 ########## Begin ########## select * from users,solution where users.user_id=solution.user_id LIMIT 50; ########## End ##########
第2关:查询做了1001题且耗时大于500(time)的选手信息
任务描述
查询做了1001题且耗时大于500(time)的选手信息
相关知识
1、users为选手信息表; users表如下图(仅显示前几条):
现已构建users表,结构信息如下:
2、solution为选手提交的题目解答 solution表如下图(仅显示前几条):
现已构建solution表,结构信息如下:
开始你的任务吧,祝你成功!
USE `sqlexp-sztuoj`; #请在此处添加实现代码 ########## Begin ########## select DISTINCT users.user_id,reg_time,name from users,solution where users.user_id=solution.user_id and solution.problem_id=1001 and solution.time>500; ########## End ##########
第3关:查询所有选手信息及其提交的解答信息,没做题的选手也要显示
任务描述
查询所有选手信息及其提交的解答信息,没做题的选手也要显示 (查询结果仅显示前50条,即在查询语句末尾加LIMIT 50)
相关知识
1、users为选手信息表; users表如下图(仅显示前几条):
现已构建users表,结构信息如下:
2、solution为选手提交的题目解答 solution表如下图(仅显示前几条):
现已构建solution表,结构信息如下:
开始你的任务吧,祝你成功!
USE `sqlexp-sztuoj`; #请在此处添加实现代码,在语句末尾加LIMIT 50,即可显示查询结果前50条。 ########## Begin ########## select * from users left join solution on users.user_id=solution.user_id LIMIT 50; ########## End ##########
第4关:查询每个选手的信息、交的题目、和提交的结果,没做题的选手不显示
任务描述
查询每个选手的信息、交的题目、和提交的结果,没做题的选手不显示 (查询结果仅显示前50条,即在查询语句末尾加LIMIT 50)
相关知识
1、users为选手信息表; users表如下图(仅显示前几条):
现已构建users表,结构信息如下:
2、solution为选手提交的题目解答 solution表如下图(仅显示前几条):
现已构建solution表,结构信息如下:
开始你的任务吧,祝你成功!
USE `sqlexp-sztuoj`; #请在此处添加实现代码,在语句末尾加LIMIT 50,即可显示查询结果前50条。 ########## Begin ########## select users.user_id,reg_time,name,solution.problem_id,result from users,solution where users.user_id=solution.user_id LIMIT 50; ########## End ##########
第5关:用嵌套查询查找和problem_id为 1026 的题目属于同一个比赛的题目信息
任务描述
用嵌套查询查找和problem_id为 1026 的题目属于同一个比赛的题目信息,结果按problem_id升序排序。
相关知识
1、problem为题目表; problem表如下图(仅显示前几条):
现已构建problem表,结构信息如下:
2、contest_problem为比赛-题目关系; contest_problem表如下图(仅显示前几条):
现已构建contest_problem表,结构信息如下:
开始你的任务吧,祝你成功!
USE `sqlexp-sztuoj`; #请在此处添加实现代码 ########## Begin ########## select * from problem where problem_id in ( select problem_id from contest_problem where contest_id in( select contest_id from contest_problem where problem_id=1026 ) ) ORDER BY problem_id ASC; ########## End ##########
第6关:用连接查询查找和problem_id为 1026 的题目属于同一个比赛的题目信息
任务描述
用连接查询查找和problem_id为 1026 的题目属于同一个比赛的题目信息,结果按problem_id升序排序。
相关知识
1、problem为题目表; problem表如下图(仅显示前几条):
现已构建problem表,结构信息如下:
2、contest_problem为比赛-题目关系; contest_problem表如下图(仅显示前几条):
现已构建contest_problem表,结构信息如下:
开始你的任务吧,祝你成功!
USE `sqlexp-sztuoj`; #请在此处添加实现代码 ########## Begin ########## SELECT DISTINCT problem.problem_id,title,description,hint,time_limit,memory_limit FROM problem,contest_problem A,contest_problem B WHERE A.problem_id = 1026 AND A.contest_id = B.contest_id AND problem.problem_id = B.problem_id ORDER BY B.problem_id ASC; ########## End ##########
第7关:用 EXISTS 实现查询做了 1032 号题的选手信息
任务描述
用 EXISTS 实现查询做了 1032 号题的选手信息
相关知识
1、users为选手信息表; users表如下图(仅显示前几条):
现已构建users表,结构信息如下:
2、solution为选手提交的题目解答 solution表如下图(仅显示前几条):
现已构建solution表,结构信息如下:
开始你的任务吧,祝你成功!
USE `sqlexp-sztuoj`; #请在此处添加实现代码 ########## Begin ########## SELECT DISTINCT users.* FROM users WHERE EXISTS ( SELECT * FROM solution WHERE users.user_id=solution.user_id AND problem_id=1032 ); ########## End ##########
第8关:用NOT EXISTS实现查询没做 1032 号题的选手信息
任务描述
用NOT EXISTS实现查询没做 1032 号题的选手信息
相关知识
1、users为选手信息表; users表如下图(仅显示前几条):
现已构建users表,结构信息如下:
2、solution为选手提交的题目解答 solution表如下图(仅显示前几条):
现已构建solution表,结构信息如下:
开始你的任务吧,祝你成功!
USE `sqlexp-sztuoj`; #请在此处添加实现代码 ########## Begin # SELECT users.* FROM users WHERE NOT EXISTS ( SELECT * FROM solution WHERE users.user_id=solution.user_id AND problem_id=1032 ); ########## End ##########
第9关:用 EXISTS 实现查询和problem_id为 1026 的题目属于同一个比赛的题目信息
任务描述
用 EXISTS 实现查询和problem_id为 1026 的题目属于同一个比赛的题目信息,结果按problem_id升序排序。
相关知识
1、problem为题目表; problem表如下图(仅显示前几条):
现已构建problem表,结构信息如下:
2、contest_problem为比赛-题目关系; contest_problem表如下图(仅显示前几条):
现已构建contest_problem表,结构信息如下:
开始你的任务吧,祝你成功!
USE `sqlexp-sztuoj`; #请在此处添加实现代码 ########## Begin ########## SELECT * FROM problem WHERE EXISTS( SELECT * FROM contest_problem A, contest_problem B WHERE A.problem_id = 1026 AND A.contest_id = B.contest_id AND problem.problem_id = B.problem_id ) ########## End ##########
第10关:用 NOT EXISTS 实现查询参与过所有比赛的选手信息
任务描述
用 NOT EXISTS 实现查询参与过所有比赛的选手信息
相关知识
1、users为选手信息表; users表如下图(仅显示前几条):
现已构建users表,结构信息如下:
2、contest为比赛信息表; contest表如下图(仅显示前几条):
现已构建contest表,结构信息如下:
3、solution为选手提交的题目解答 solution表如下图(仅显示前几条):
现已构建solution表,结构信息如下:
开始你的任务吧,祝你成功!
USE `sqlexp-sztuoj`; #请在此处添加实现代码 ########## Begin ########## #没有一场比赛没有提交过题目 select * from users WHERE NOT EXISTS( select * #参加过一次比赛 from contest WHERE NOT EXISTS( select * #提交过一道题目 from solution where user_id=users.user_id AND contest_id = contest.contest_id ) ) ########## End ##########