0

我有以下表格:

文章:

article_id category_id
1             10-1
2             20-1
3             NULL

类别:

category_id category_name parent_id
10-1             A            00-00
20-1             B            10-1

这样做的方式是,每篇文章都与一个类别相关联。类别最多可以有 2 个嵌套级别(例如类别和子类别)。category_id 将是最深的嵌套

我想将其转换为:

article_id category_id category_name subcategory_name
1            10-1          A           NULL
2            20-1          A              B
3            NULL        NULL          NULL

我正在使用 PrestoSQL,但我认为这可以用本机 sql 解决。

4

1 回答 1

3

使用 ANSI SQL:

select 
    art.article_id, 
    art.category_id, 
    coalesce(pcat.category_name, cat.category_name) category_name, 
    case
        when pcat.category_id is null then null 
        else cat.category_name
    end subcategory_name
from articles art
left join categories cat
on art.category_id=cat.category_id
left join categories pcat
on cat.parent_id=pcat.category_id
order by article_id
于 2019-12-01T11:18:50.033 回答