我有一个类似(简化)的表结构:
内容
- 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