我有一个类似(简化)的表结构:
内容

 - id_content
 - my_string1
 - ...

内容有内容
  - id_content
  - id_subcontent

主题有内容
  - id_topic
  - id_content

任何主题都可以有多个“content”,任何“content”都可以有多个“subcent”(内容的实例)。
对于给定的i d_主题,我想从链接的内容、分包、分包的分包等等收到一个所有字符串的列表。
我知道“with”不适用于mysql,但找不到一个好的递归替代方法。
谢谢
丹尼尔

最佳答案

mysql中没有递归,而且得到的结果将是平坦的(没有结构)。最好的方法仍然是在php、java或其他编程语言中使用while循环。
查询可能如下所示:

SELECT C.*, CHC.ID_SUBCONTENT
FROM CONTENT C
LEFT OUTER JOIN CONTENT_HAS_CONTENT CHC ON CHC.ID_CONTENT = C.ID_CONTENT
WHERE C.ID = ?
... // you get the idea

在php中,您可以使用下一个子内容id重复查询,直到ID_SUBCONTENT is null

09-27 17:37