订阅更新

看过自己文章的作者

SQL 实战 123 题 · 第 68 题 简单 约 2 分钟读完

LeetCode 1148 · 同表列比较、DISTINCT

本文目录
  1. 面试怎么回答
  2. 题意
  3. 表结构
  4. 思路
  5. 参考解法
  6. 易错点

面试怎么回答

WHERE author_id = viewer_id,SELECT DISTINCT author_id 并排序。同一行内两列比较,不需要自连接。

先把这段讲顺;面试官追问时,再展开下面的原理和细节。

详细讲解

题意

浏览表每行表示某个读者在某天看了某位作者的某篇文章。找出看过自己文章的作者 ID,去重后升序输出。

表结构

  • Views:article_id、author_id、viewer_id、view_date;没有主键,可能有重复行

思路

「看自己的文章」就是同一行里 author_id = viewer_id。过滤后去重、排序即可。

参考解法

select distinct author_id id
from Views
where author_id=  viewer_id
order by id

易错点

  • 同一作者可能多次看自己的文章,要 DISTINCT。
刷题进度保存在当前浏览器