0

我有两张表:一张表包含成员提交的诗歌。另一个是成员表。两个表都包含成员的 ID(MID 和 SubMID)。我想显示最近更新的 15 首诗。但是,我只想为任何一位作者显示一部作品。

这可行,但如果作者更新了一些作品,那么它们会被多次显示:

SELECT * FROM submits, members
WHERE submits.SubMID = members.MID AND submits.sub_approved = 'T'
ORDER BY submits.sub_Last_Update DESC LIMIT 15

您可以在右侧的滚动字幕中看到该查询的结果: http ://www.Prose-n-Poetry.com

问题是一位作者可以通过更新几首诗来接管选框。

4

2 回答 2

1
SELECT *
FROM members m
JOIN (SELECT s.*
      FROM submits s
      JOIN (SELECT SubMID, MAX(sub_Last_Update) lastUD
            FROM submits
            WHERE approved = 'T'
            GROUP BY SubMID) l
      ON s.SubMID = l.SubMID AND s.sub_Last_Update = l.lastUD) s
ON m.MID = s.SubMID
ORDER BY s.sub_Last_Update DESC
LIMIT 15
于 2013-09-29T03:11:01.590 回答
0

编辑:正如@Barmar 评论的那样,这不会给出每个用户最新提交的列表。

尝试按成员分组

$query = "
SELECT
*

FROM
submits, members

WHERE
submits.SubMID = members.MID

AND
submits.sub_approved = 'T'

GROUP BY
submits.SubMID

ORDER BY
submits.sub_Last_Update DESC

LIMIT 15
";
于 2013-09-29T03:10:10.277 回答