在我的论坛上,我使用带有 posts
表的数据库:
类型
可以是问题、答案或注释(“Q”、“A”、“N”)updated
是帖子上次更新的日期postid
是标识帖子的整数parentid
是一个整数,引用父帖子(NULL
表示问题,表示答案的问题,表示注释的问题或答案)<
如何创建一个表格,将每个问题的 postid
与与其关联的最新答案/注释的 postid
相关联?
我认为这需要三重 JOIN,但这对我来说是非常新的。
最佳答案
你可以这样做:
SELECT
p.postid,
answersAndNotes.postid AS AnswerOrNoteId,
answersAndNotes.updatedDate AS AnswerOrNoteUpdateDate
FROM posts p
INNER JOIN
(
SELECT
parentid,
postid,
MAX(updated) AS updatedDate
FROM posts
WHERE `type` = 'A' OR `type` = 'N'
GROUP BY postid
) AS answersAndNotes ON answersAndNotes.parentid = p.postid
WHERE p.type = 'Q';
子查询:
SELECT
parentid,
postid,
MIN(updated) AS updatedDate
FROM posts
WHERE `type` = 'A' OR `type` = 'N'
GROUP BY postid
将为您提供这些答案或注释,并且仅提供最新的答案或注释,如果您想要选择注释文本或其他列,则将它们添加到此子查询和GROUP BY
中。
关于php - MySQL自连接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28214907/