Select 父名称使用相同的父 ID table
Select parent name using parent id in the same table
我有一个 table 和 tag_categories,我正在与其他一些 table 一起加入,所以我可以获得文件标签的类别,其中 table 我有一列 parent_id,它只是同一 table 中的另一个标签类别。在构建如下查询时,它确实检索了 parent_id,我不知道如何获取父名称:
查询:
select
tags.id,
tags.name,
tag_categories.name,
tag_categories.parent_id,
count(files.id)
from
"files"
inner join "file_tags_join" on "files"."public_id" = "file_tags_join"."file_public_id"
inner join "tags" on "file_tags_join"."tag_id" = "tags"."id"
inner join "tag_categories" on "tags"."category_id" = "tag_categories"."id"
where
"tags"."category_id" is not null
group by
tags.id,
tags.name,
tag_categories.name,
tag_categories.parent_id
除了我已经得到的,我希望得到的是与类别 parent_id:
相匹配的类别名称
id name name parent_id count parent_name
2 tag2 tagCategory2 1 1 tagCategory1
1 tag1 tagCategory1 (null) 1 null
这是sql fiddle:
你可以试试下面
select
tags.id,
tags.name,
tag_categories.name,
tag_categories.parent_id,
b.name as parentname,
count(files.id)
from
"files"
inner join "file_tags_join" on "files"."public_id" = "file_tags_join"."file_public_id"
inner join "tags" on "file_tags_join"."tag_id" = "tags"."id"
inner join "tag_categories" on "tags"."category_id" = "tag_categories"."id"
left join "tag_categories" b on tag_categories.parent_id = b.id
where
"tags"."category_id" is not null
group by
tags.id,
tags.name,
tag_categories.name,
tag_categories.parent_id,b.name
输出:
id name name parent_id parentname count
2 tag2 tagCategory2 1 tagCategory1 1
1 tag1 tagCategory1 1
我有一个 table 和 tag_categories,我正在与其他一些 table 一起加入,所以我可以获得文件标签的类别,其中 table 我有一列 parent_id,它只是同一 table 中的另一个标签类别。在构建如下查询时,它确实检索了 parent_id,我不知道如何获取父名称:
查询:
select
tags.id,
tags.name,
tag_categories.name,
tag_categories.parent_id,
count(files.id)
from
"files"
inner join "file_tags_join" on "files"."public_id" = "file_tags_join"."file_public_id"
inner join "tags" on "file_tags_join"."tag_id" = "tags"."id"
inner join "tag_categories" on "tags"."category_id" = "tag_categories"."id"
where
"tags"."category_id" is not null
group by
tags.id,
tags.name,
tag_categories.name,
tag_categories.parent_id
除了我已经得到的,我希望得到的是与类别 parent_id:
相匹配的类别名称id name name parent_id count parent_name
2 tag2 tagCategory2 1 1 tagCategory1
1 tag1 tagCategory1 (null) 1 null
这是sql fiddle:
你可以试试下面
select
tags.id,
tags.name,
tag_categories.name,
tag_categories.parent_id,
b.name as parentname,
count(files.id)
from
"files"
inner join "file_tags_join" on "files"."public_id" = "file_tags_join"."file_public_id"
inner join "tags" on "file_tags_join"."tag_id" = "tags"."id"
inner join "tag_categories" on "tags"."category_id" = "tag_categories"."id"
left join "tag_categories" b on tag_categories.parent_id = b.id
where
"tags"."category_id" is not null
group by
tags.id,
tags.name,
tag_categories.name,
tag_categories.parent_id,b.name
输出:
id name name parent_id parentname count
2 tag2 tagCategory2 1 tagCategory1 1
1 tag1 tagCategory1 1