0

我有一个类别表,我想在其中为帖子指定类别

post_category(cat_id,cat_name,parent_id,cat_count)

cat_id    cat_name       parent_id       cat_count
   1           C            NULL           300 
   2         Pointers        1             100
   3         Structures      1             200
   4          Java          NULL           700    
   5         Exceptions      5             200
   6         Threading       5             300
   7         Thread Priority 6             200

这里 cat_id 是主键,根元素的父 id 为空,子父 id 是任何有效的 cat_id。我想选择每个父母及其孩子的详细信息。如下

      C
         Pointers
         Structures    

      Java
         Exceptions
         Threading 
             Thread priority 
4

2 回答 2

1

不幸的是,MySQL 不支持可变数量的 JOIN,就像 MS SQL(我认为是 Postgres?)那样。但是,如果您愿意重新评估模式,那么在这个问题上已经有了一些很好的想法,并且在 Percona 的 Bill Karwin 的演讲中有几个很好的选择

就目前而言,您基本上有两种选择:

  1. 选择任意深度进行查询
  2. 选择每条记录并在您的应用程序层中进行聚合(ick!)
于 2012-09-06T14:23:31.717 回答
0

在 MS SQL 中,我认为您需要使用Recursive Queries Using Common Table Expressions。所以也许这可能有助于在 MySQL 空间中找到您正在寻找的内容。

于 2012-09-06T14:18:41.140 回答