gpt4 book ai didi

mysql - JOIN ids 以 0 作为父 id,查询具有不同父 id 的 id

转载 作者:行者123 更新时间:2023-11-29 17:47:31 28 4
gpt4 key购买 nike

我正在尝试列出与用户相关的讨论列表。

想象一下,如果你愿意的话:

posts
-------------------------------------------------------------------
ID | PID | FID | TITLE | USER
1 | 0 | 1 | Hello World | User 1
2 | 0 | 23 | Endangered Squirrels & How to Cook Them | Eddy
3 | 1 | 1 | Re: Hello World | Eddy
4 | 1 | 1 | Re: Hello World | Clark
5 | 0 | 3 | Any Vacation Suggestions? | Clark
6 | 5 | 3 | Re: Any Vacation Suggestions? | Eddy
7 | 5 | 3 | Re: Any Vacation Suggestions? | Clark
8 | 5 | 3 | Re: Any Vacation Suggestions? | Ellen

为了显示 Eddy 的所有帖子,我使用了一个查询来选择带有不同 parent ID(pid) 的帖子,并且认为它有效。我很快意识到 0 只被认为是 DISTINCT 一次,如果他创建了一个新主题并且没有回复,那么如果这不是他的第一个主题,则不会列出该主题。

那么我如何获取具有DISTINCT pid和pid != 0的id列表,并将其与具有pid = 0(其中用户= Eddy<)的id的查询连接起来/strong>

这是我问的第一个问题,如果不完美,请原谅我。

已更新查询

我已经改用 GROUP BY,这样我就可以获取帖子的 ID,但问题仍然相同

我被要求提供我的查询。这是我正在使用的,仅提供 1 行,pid 为 0。我还更新了上面的表格布局以显示论坛 id,在下面的查询中,它仅从公共(public)论坛列表中提取主题。

SELECT id, pid FROM posts WHERE fid IN (1,2,3) AND author = 'Eddy' GROUP BY pid ORDER BY IF(latest > timestamp, latest, timestamp) DESC LIMIT 1, 5;

感谢您提供的所有帮助。

最佳答案

我可以用GROUP BY中的一个简单的IF来做我想做的事情,就是这么简单。

SELECT id, pid
FROM posts
WHERE fid IN (1,2,3)
AND author = 'Eddy'
GROUP BY IF(pid > 0, pid, id)
ORDER BY IF(latest > timestamp, latest, timestamp) DESC
LIMIT 1, 5;

关于mysql - JOIN ids 以 0 作为父 id,查询具有不同父 id 的 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49686904/

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