如何用PostgreSQL查询工具创建跨多表的图书列表Schema视图?
创建PostgreSQL视图实现图书列表查询
首先明确Django自动生成的PostgreSQL表名规则:默认格式为{应用名}_模型名,假设你的Django应用名为library,则三个对应表为library_tag、library_author、library_book,若你的应用名不同,替换以下SQL中的表名即可。
生成SEARCHVIEW的SQL语句
执行以下SQL创建视图:
CREATE VIEW SEARCHVIEW AS SELECT t."TagName" AS "TagName", a."AuthorName" AS "AuthorName", b."BookName" AS "BookName" FROM "library_book" b INNER JOIN "library_tag" t ON b."TagName_id" = t."id" INNER JOIN "library_author" a ON b."AuthorName_id" = a."id";
关键说明
- Django外键字段在数据库中会自动生成
{外键字段名}_id格式的列,比如Book模型里的TagName外键,对应表列是TagName_id,关联Tag表的主键id。 - 通过
INNER JOIN关联三个表,确保获取到关联的标签、作者和图书信息。
验证视图
创建完成后,执行查询语句即可得到目标格式的结果:
SELECT * FROM SEARCHVIEW;
返回结果示例:
TagName | AuthorName | BookName ----------+------------+----------------------- Recipes | Jeff | Chef Jeff's food Recipes | Jeff | Foods in Europe Stories | Jeff | an Adventure Story
内容的提问来源于stack exchange,提问作者deeded307
相关产品推荐
相关产品推荐

