[英]MySQL self-JOIN table
在我的论坛上,我使用带有posts
表的数据库:
type
可以是问题,答案或注释(“ 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
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.