gpt4 book ai didi

MySql 转发/转发

转载 作者:行者123 更新时间:2023-11-29 20:24:14 30 4
gpt4 key购买 nike

我在正在构建的应用程序中集成了转发系统,但很难弄清楚在同一流中检索帖子转发的逻辑。

我有一个 post_reblog 数据透视表来存储 post_iduser_id - 转发该帖子的用户的 ID。

以下查询检索帖子,但检索转发的帖子 - 仅检索原始帖子。我不知道如何检索两者原始帖子转发的帖子并在同一个信息流中共享它们。

SELECT *
FROM posts
Where status = 'published'
OR id IN (SELECT * FROM (SELECT post_id FROM post_reblog ) AS subquery)

我的 table

posts
post_id (int)
user_id (int)
title (varchar)
body (text)

post_reblog
post_id (int)
user_id (int)

最佳答案

问题是所有转发的帖子都在查询中。当您使用这样的 OR 时,每一行只能出现一次。
一种可能的解决方案是联合:

SELECT post_id, user_id 'original poster', user_id 'current poster', title, body
FROM posts
WHERE status = 'published'
UNION ALL
SELECT p.post_id, p.user_id 'original poster', pr.user_id 'current poster', p.title, p.body
FROM post_reblog pr
INNER JOIN posts p ON p.post_id = pr.post_id
WHERE p.status = 'published'

请注意,它是一个 UNION ALL,因为 UNION ALL 不会删除重复的行。另请注意,这两个查询的区别在于“当前发布者”是重新发布者。

关于MySql 转发/转发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39379611/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com