【发布时间】:2019-10-04 21:49:34
【问题描述】:
我有一个问题,我目前正在使用 Postgres 数据库,我想做的是从两个表创建一个视图。问题是其中一个表包含“varchar ARRAY”类型的列。此列包含某种 ID,可用于从第二个表中获取信息。
我有以下几点:
表 1:人
- primary_name : varchar
- known_for_titles : varchar ARRAY(t_const 数组)表 2:
表 2:电影
- t_const : varchar
- primary_title : varchar
我想创建一个如下所示的视图(actorView): -primary_name : varchar - Famous_for : varchar ARRAY(标题数组)
我的这个 SQL 不能正常工作,我设法创建了视图,但我不能单独使用 select 语句,也不能对视图进行查询。
CREATE or REPLACE VIEW actorView AS
SELECT p.primary_name,
array_agg(t.primary_title) as famous_titles
FROM person p JOIN title t
ON t.t_const = any(p.known_for_titles)
group by primary_name
当我尝试 SQL 语句的 select 部分时,它只是在无限循环中搜索,我必须终止查询。
当我使用整个语句时也会发生同样的事情。它以某种方式设法创建了表,但我无法搜索任何内容。
【问题讨论】:
-
查看@TAM 的回答。如果您不将所有内容命名为小写,您可能会在 PostgreSQL 中遇到问题。有关详细信息,请参阅this post。
标签: postgresql database-design sql-view