小编典典

如何在SQL查询中为父母加入分类表?

sql

我有一个表作为(id,category_id,…),然后JOIN它的类别表为(category_id,category_name,parent,…)ONcategory_id。父级是另一个类别的category_id。例如:

category_id    category_name      parent
1              Computer Science   NULL
2              Web Technology     1
3              Mathematics        NULL
4              PHP                2

如何JOIN发布帖子和分类表,以阅读帖子的父类别。例如,

id     category_id    post_title
44     4              something

通过简单的JOINcategory_id,我只能得到PHP作为类别。我怎么也能得到父母呢Computer Science > WebTechnology > PHP

注意: 我将mysql与MyISAM引擎一起使用。


阅读 172

收藏
2021-04-07

共1个答案

小编典典

只需对额外的元素进行额外的联接,但将IT作为LEFT联接,因为并非所有类别都具有父类别,并且您不希望排除这些类别。

select
      P.ID,
      P.Post_Title,
      P.Category_ID,
      C.Category_Name as FirstCat,
      C.Parent,
      COALESCE( C2.Category_Name, ' ' ) as ParentCategory
   from
      Posts P
         JOIN Categories C
            on P.Category_ID = C.Category_ID
            LEFT JOIN Categories C2
               on C.Parent = C2.Category_ID
   where
      AnyFiltering
2021-04-07