在我的论坛上,我使用的数据库包含posts
表:
type
可以是问题,答案或说明(' Q',' A',' N')updated
是帖子上次更新的日期postid
是标识帖子的整数parentid
是一个整数,指的是父帖(NULL
表示问题,是指答案问题,是指问题或答案的答案)如何创建一个表格,将每个问题的postid
与最近与之关联的答案/备注的postid
相关联?
我认为这需要一个三重JOIN,但这对我来说是非常新的。
答案 0 :(得分:1)
你可以这样做:
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
如果您要选择notetext或其他列,请将这些答案或备注添加到此子查询以及GROUP BY
。