【发布时间】:2018-04-06 06:42:31
【问题描述】:
我正在尝试列出与用户相关的讨论。
想象一下,如果你愿意的话:
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 的所有帖子,我使用了一个查询来选择具有 DISTINCT parents ids(pid) 的帖子,并认为它有效。我很快意识到 0 只考虑一次 DISTINCT,如果他创建了一个新主题但没有回复,如果不是他的第一个,它就不会被列出。
那么我如何获得具有 DISTINCT pid 和 pid != 0 的 id 列表,并将其与具有 pid = 0 的 id 的查询连接起来,其中用户 = Eddy
这是我问的第一个问题,如果不完美请见谅。
已通过查询更新
我已经切换到使用 GROUP BY,所以我可以获取帖子的 ID,但问题仍然存在
我被要求提供我的查询。这是我正在使用的,它只提供 1 行,pid 为 0。我还更新了上面的表格布局以显示论坛 id,在下面的查询中,它只从公共论坛列表中提取主题。
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;
感谢您的任何帮助。
【问题讨论】:
-
也发布您的查询。
-
与其尝试用自然语言描述代码,不如展示实际代码。您可能有兴趣了解how to ask a good question 和how to create a minimal, complete and verifiable example。
-
试试看下面的答案——stackoverflow.com/questions/20215744/…我觉得是一样的。
-
类似,但我不是在寻找所有的孩子。我想要作者创建的每个父母的 ID,以及作者创建的每个父母的 1 个孩子 ID。