我基本上是在创建一个论坛。我输出的所有主题都与我的“帖子”和“成员”表一起加入。这样我就可以显示主题索引的帖子和成员信息。
我想要做的是收集发布的最后三个成员的用户名,我只想要唯一的值(如果有人双重帖子没有重复)我正在使用DISTINCT,但麻烦的是用户名在他们被倒退后被分组。如果有人做了第一个和最后一个帖子,我将无法在此列表中检索他们的用户名。
这是我正在使用的代码:
SUBSTRING_INDEX(
GROUP_CONCAT(DISTINCT `members`.`username` ORDER BY `posts`.`date` DESC SEPARATOR '\\\\') , '\\\\', 3
) AS member_last_username
有没有办法可以修改该代码,以便在分组之前向后排序用户名?如果我的问题令人困惑,我道歉!
答案 0 :(得分:0)
当然,做一个以您想要的方式对数据进行排序的子选择,并将其用作输入。
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