【发布时间】:2021-12-22 12:48:22
【问题描述】:
考虑我有以下表格/实体:
Posts
| id | user_id | title | content |
|---|---|---|---|
| 1 | 1 | Article 1 | Lorem ipsum |
| 2 | 1 | Article 1 | Lorem ipsum |
| 3 | 1 | Article 2 | Lorem ipsum 2 |
| 4 | 2 | Article 3 | Lorem ipsum |
Users
| id | name |
|---|---|
| 1 | John Doe |
| 2 | Timothy Fisher |
请注意,来自 ID 为 1 的用户的两个帖子具有相同的标题和内容。应用程序级别出现错误,允许用户在过去两次提交帖子,导致“重复”记录。
我希望查询所有帖子,但合并每个用户的帖子,这些帖子具有重复的标题和内容。
理想的结果集如下所示:
| post_id | author_name | title | content |
|---|---|---|---|
| 1 | John Doe | Article 1 | Lorem ipsum |
| 3 | John Doe | Article 2 | Lorem ipsum 2 |
| 4 | Timothy Fisher | Article 3 | Lorem ipsum |
SELECT
posts.id as post_id,
users.name as author_name
posts.title,
posts.content
FROM
posts
INNER JOIN
users
ON
posts.user_id = users.id;
查询是否为 John Doe 拉出 1 或 2 无关紧要。在实际的数据库中,我有时间戳,所以我很可能只提取最新的。
这可以通过 SQL 实现吗?
【问题讨论】: