我很难使用这个使用关键字WITH
将表分组在一起的创建视图语句。我正在使用 plsql,所以我可以使用WITH
关键字,就好像我在 Mysql 中我不能一样。我要写的查询是
首先,编写一个查询,返回所有身高超过 70 英寸且未就读于“科罗拉多大学”的人的人员 ID (pid)(提示:uid != 2)。然后,将该查询放在 WITH 子句中,并将其用作公用表表达式 (CTE) 来更新该集合中的所有人,以便他们的大学现在是“科罗拉多大学”。
现在,当我在 sql 中运行查询时,出现此错误。
错误:“SELECT”第 3 行或附近的语法错误:SELECT a.pid
这是我为此查询编写的代码,然后我将发布我使用的表。我在这里先向您的帮助表示感谢。
CREATE VIEW withclause2 AS
WITH cte(
SELECT a.pid
FROM what.person as a
INNER JOIN what.university as b
ON a.uid = b.uid
WHERE a.uid != 2
)
SELECT cte.pid
FROM cte
INNER JOIN what.body_composition as c
ON c.pid=cte.pid
WHERE c.height > 70;
这些表是
Table "what.university"
Column | Type | Modifiers
-----------------+-----------------------+--------------------------------------
uid | integer | not null default
university_name | character varying(50) |
city | character varying(50) |
Table "what.person"
Column | Type | Modifiers
--------+-----------------------+-----------------------------------------------
pid | integer | not null default nextval('person_pid_seq'::regclass)
uid | integer |
fname | character varying(25) | not null
lname | character varying(25) | not null
Table "what.body_composition"
Column | Type | Modifiers
--------+---------+-----------
pid | integer | not null
height | integer | not null
weight | integer | not null
age | integer | not null