You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PostgreSQL视图中用CategoryName替换BookCategoryID

修改PostgreSQL视图以显示分类名称而非ID

原视图创建语句:

CREATE VIEW tagging_books AS
SELECT tags."TagName", books."BookISBN", books."BookName", books."BookCategoryID"
FROM library
    INNER JOIN tags on library."TagName_id" = tags."id"
    INNER JOIN books on library."BookISBN_id" = books."id"
    ORDER BY tags."id"

category表结构:

BookCategoryIDCategoryName
1Toolbook

需求:将视图中的books."BookCategoryID"替换为category."CategoryName",使视图结果展示分类名称,期望输出示例:

tags.TagNamebooks.BookISBNbooks.BookNamecategory.CategoryName
PythonISBN 957-208-570-0Learn PythonToolbook

解决方案

只需要在原查询中新增与category表的关联,并替换SELECT子句中的目标字段即可,修改后的视图创建语句如下:

CREATE VIEW tagging_books AS
SELECT 
    tags."TagName", 
    books."BookISBN", 
    books."BookName", 
    category."CategoryName"
FROM library
    INNER JOIN tags ON library."TagName_id" = tags."id"
    INNER JOIN books ON library."BookISBN_id" = books."id"
    INNER JOIN category ON books."BookCategoryID" = category."BookCategoryID"
    ORDER BY tags."id";

补充说明

  • 新增的关联语句通过外键BookCategoryID将books表和category表绑定,确保能通过分类ID匹配到对应的分类名称;
  • 如果存在未关联分类的图书,且需要保留这类图书的记录,可以把INNER JOIN category改为LEFT JOIN category,此时未关联分类的记录会显示NULL。

内容的提问来源于stack exchange,提问作者deeded307

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 14:25:24