【发布时间】:2021-07-06 21:25:24
【问题描述】:
数据示例如下:
| username | tweet | is_public | created_at |
|---|---|---|---|
| catelie | tweet1 | 1 | 2021-06-14 |
| urs | tweet1 | 1 | 2021-06-15 |
| nik | firstlast | 1 | 2021-06-15 |
| urs | lasttweet | 1 | 2021-06-23 |
| nik | empty | 0 | 2021-06-23 |
选择所有公开推文:
WHERE is_public = 1
要选择每个用户的最新推文我受到these 的启发,所以我得到了:
SELECT posts.* FROM post
LEFT JOIN posts as postdouble
ON posts.created_at < postdouble.created_at AND posts.username = postdouble.username
WHERE postdouble.username IS NULL
要选择每个用户的最新和公开推文(混淆这两个语句)我迷失了一些 SubSubQueries
SELECT posts.username, posts.tweet, posts.is_public, posts.created_at, postdouble.username as userd, postdouble.tweet as tweetd, postdouble.is_public as ispublicd, postdouble.created_at as createdatd FROM posts
LEFT JOIN posts as postdouble
ON posts.created_at < (
SELECT MAX(posts.created_at) FROM posts WHERE is_public = 1
)
AND posts.username = postdouble.username
-- WHERE postdouble.username IS NULL
urs 选择正确(双打中的空实体),但这是唯一正确的选择。请帮我调试一下。thx^^lg
【问题讨论】:
-
。 .我对您的问题与您提出的问题有什么关系感到有些困惑。
-
我的查询包含“每个用户的最新推文”(来自我发布的链接,其中包含“p1.created_at