我在MYSQL中爲某些QA論壇(例如。stackoverflow)提供了一個表格「posts」和下面的示例數據。如何在mySQL中使用「CTE」?
INSERT INTO POSTS (postID, type, parentID, QuesTitle) VALUES(1,'Q',NULL,'sometext');
INSERT INTO POSTS (postID, type, parentID, QuesTitle) VALUES(2,'Q',NULL,'randomtext');
INSERT INTO POSTS (postID, type, parentID, QuesTitle) VALUES(3,'A',1,NULL);
INSERT INTO POSTS (postID, type, parentID, QuesTitle) VALUES(4,'A',1,NULL);
INSERT INTO POSTS (postID, type, parentID, QuesTitle) VALUES(5,'Q',NULL,'titletext');
INSERT INTO POSTS (postID, type, parentID, QuesTitle) VALUES(6,'A',1,NULL);
INSERT INTO POSTS (postID, type, parentID, QuesTitle) VALUES(7,'A',2,NULL);
INSERT INTO POSTS (postID, type, parentID, QuesTitle) VALUES(8,'A',2,NULL);
postID是主鍵,parentID引用postID。一個「Q」(問題)類型的帖子可以有多個「A」(答案)帖子(由他們的parentID顯示)。只有「Q」的帖子有標題,但是「A」的帖子沒有標題(NULL)
我想選擇「A」類型的帖子及其帖子ID,它們的父ID和它所指的Questitle。例如,要求的結果是 -
postID parentID QuesTitle
3 1 sometext
4 1 sometext
6 1 sometext
7 2 randomtext
8 2 randomtext
使用'with'子句CTE會更容易,但MYSQL不支持它。有人可以幫助我在MYSQL中實現它嗎?
你不這樣做,MySQL不支持的CTE。你需要一個閉合表。 – 2015-08-13 14:25:45