我有一个类似(简化)的表结构:
内容
- id_content - my_string1 - ...
content_has_content
- id_content - id_subcontent
topic_has_content
- id_topic - id_content
任何主题都可以具有多个“内容”,任何“内容”都可以具有多个“子内容”(内容实例)。对于给定的id_topic,我想从链接的内容,子内容,子内容的子内容等中接收所有my_string1的列表。
我了解“ 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中,您可以使用下一个sub_content_id重复查询,直到 ID_SUBCONTENT is null
ID_SUBCONTENT is null