我正在尝试列出与用户相关的讨论。
想象一下,如果你愿意的话:
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父母ID(pid)的帖子,并认为它正在运行。我很快意识到0只考虑了DISTINCT一次,如果他创建了一个新主题而没有回复,那么如果它不是他的第一个就没有被列出。
那么如何获得带有 DISTINCT pid 和pid!= 0的ID列表,并将其与 pid = 0的id查询一起加入,其中user = Eddy < /强>
这是我曾经问过的第一个问题,如果它不完美,请原谅我。
使用QUERY更新
我已经切换到使用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;
感谢您的帮助。
答案 0 :(得分:0)
我能够通过 GROUP BY 中的简单 IF 做我想做的事情,它非常简单。
{{1}}