我基本上是在创建一个论坛。我正在输出所有主题,我的"posts"answers"members"表与之相连。这样我就可以在主题索引上显示帖子和成员信息。
我想做的是收集最后三个发布的成员的用户名,我只想要唯一的值(如果有人重复发布,没有重复的值)。我目前正在使用DISTINCT,但问题是用户名是在向后排序后分组的。如果有人做了第一篇也是最后一篇帖子,我将无法在这个列表中检索他们的用户名。
这是我正在使用的代码:
SUBSTRING_INDEX(
GROUP_CONCAT(DISTINCT `members`.`username` ORDER BY `posts`.`date` DESC SEPARATOR '''''') , '''''', 3
) AS member_last_username
有没有一种方法可以修改代码,使用户名在分组之前向后排序?如果我的问题令人困惑,我深表歉意!
当然,按照您想要的方式对数据进行排序,并将其用作输入。
SELECT
SUBSTRING_INDEX(
GROUP_CONCAT(DISTINCT sub.username ORDER BY sub.`date`
DESC SEPARATOR '''''') , '''''', 3
) AS member_last_username
FROM (SELECT m.username, p.`date`
FROM members m
INNER JOIN post p ON (some join or other)
ORDER BY backwards ordering ) sub