[英]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.