【发布时间】:2021-05-25 09:18:41
【问题描述】:
这是我的第一篇文章。在玩了几年之后,到目前为止,我已经能够找到问题的解决方案,但我最终陷入困境,主要是因为我认为我的措辞和词汇是错误的,但我跑题了。
我有两张桌子让我们说推文和喜欢..
喜欢
Liker | like_id | tweet_id
C | 2 | | 27
C | 3 | | 1
C | 4 | | 2
C | 6 | | 22
D | 7 | | 3
D | 8 | | 27
D | 9 | | 22
推文
Tweeter | Tweet_id |
A | 1 |
A| 2 |
A | 3 |
B | 4 |
B | 22|
B | 23|
B | 24|
当我查看用户页面时,我想查看他们所有的推文,如果我喜欢其中任何一个,我会很高兴看到这个,所以竖起大拇指或其他什么。
所以如果我用户 C 查看用户 B 的提要,当我加入表格时它应该会显示以下内容
Tweets for user A
Tweeter | Tweet_id | liked_by_me
B | 4 |
B | 22 | YES
B | 23 |
B | 24 |
我以为我能弄明白,但当推文的点赞数超过我的点赞数时,问题就很明显了。这就是我累了
SELECT * FROM tweets LEFT OUTER JOIN likes ON (tweets.tweet_id = likes.p_id) WHERE tweets.user= B AND (likes.likedby is NULL or likes.likedby= C)
但如果其他人喜欢 C 以外的推文,则完整列表不会回来......
提前致谢
【问题讨论】:
标签: sql database postgresql join