簡體   English   中英

MySQL self-JOIN表

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM