文章目录
- 原题
- 题解
- 解题笔记——相关知识点拓展
我是一名立志把细节都说清楚的博主,欢迎【关注】🎉 ~
原创不易, 如果有帮助 ,记得【点赞】【收藏】 哦~ ❥(^_-)~
如有错误、疑惑,欢迎【评论】指正探讨,我会尽可能第一时间回复的,谢谢支持
原题
Views 表:
+---------------+---------+
| Column Name | Type |
+---------------+---------+
| article_id | int |
| author_id | int |
| viewer_id | int |
| view_date | date |
+---------------+---------+
此表可能会存在重复行。(换句话说,在 SQL 中这个表没有主键)
此表的每一行都表示某人在某天浏览了某位作者的某篇文章。
请注意,同一人的 author_id
和 viewer_id
是相同的。
请查询出所有浏览过自己文章的作者
结果按照 id 升序排列。
查询结果的格式如下所示:
示例 1:
输入:
Views 表:
+------------+-----------+-----------+------------+
| article_id | author_id | viewer_id | view_date |
+------------+-----------+-----------+------------+
| 1 | 3 | 5 | 2019-08-01 |
| 1 | 3 | 6 | 2019-08-02 |
| 2 | 7 | 7 | 2019-08-01 |
| 2 | 7 | 6 | 2019-08-02 |
| 4 | 7 | 1 | 2019-07-22 |
| 3 | 4 | 4 | 2019-07-21 |
| 3 | 4 | 4 | 2019-07-21 |
+------------+-----------+-----------+------------+
输出:
+------+
| id |
+------+
| 4 |
| 7 |
+------+
题解
SELECT DISTINCTauthor_id AS id
FROMViews
WHEREauthor_id = Viewer_id ORDER BY id ASC;
解题笔记——相关知识点拓展
解题关键点:
- 同一人的
author_id
和viewer_id
相同。author_id
=viewer_id
。 - 输出结果无重复数据。使用
DISTINCT
关键字 过滤。- 涉及知识点链接:【MySQL】查询数据,过滤重复结果数据(关键字:DISTINCT)
- 出现没有的列名称,使用
AS
关键字 起别名。 - 结果数据并非原数据一样乱序,使用
RDER BY
关键字 按升序排列。- 涉及知识点链接:【MySQL】查询数据,对结果进行排序(关键字:ORDER BY)
我是一名立志把细节都说清楚的博主,欢迎【关注】🎉 ~
原创不易, 如果有帮助 ,记得【点赞】【收藏】 哦~ ❥(^_-)~
如有错误、疑惑 ,欢迎【评论】指正探讨,我会尽可能第一时间回复的,谢谢支持