在mySQL中获取所有包含的文件(递归?)

时间:2013-08-01 08:09:31

标签: mysql database-design recursive-query

我有三个不同的表:

  1. rm_items(items)
  2. rm_items_included(included)
  3. rm_items_files(files)
  4. 他们有以下结构和连接:

    items:    id|name|desc
    included: id|itemid|includedid (LEFT JOIN ON included.id = item.id)
    files:    id|itemid|filename (LEFT JOIN ON files.id = items.id) 
    

    要获取项目中的所有文件,需要查询:

    SELECT files.* 
    FROM rm_items_files files
    WHERE files.`itemid` = '{$itemid}'
    ORDER BY files.`filename` ASC
    

    现在有些项目包含在其他项目中(例如“包”),例如

    表“项目”:

    1|Apple|This is a fruit or a company
    2|Mango|This can be worn or eaten
    3|Fruits|This is a healthy fruit package
    

    表“包含”:

    1|3|1
    2|3|2
    

    这就是问题:如何从具有任意包含深度的项目中获取文件?它必须是一种递归方式吗?

0 个答案:

没有答案