我在用 SQL 编写此 Create view 语句时遇到问题。我想从前往科罗拉多大学 (uid = 2) 的人的表中获取 personID、名字和姓氏。然后我想使用 WITH 子句将此表与我的 body_composition 表结合起来,并打印出 body_composition 表中的所有内容。这是我正在做的查询的确切定义。
首先,编写一个查询,返回所有来自科罗拉多大学的人的 id (pid)、名字 (fname) 和姓氏 (lname)。然后,将该查询放在 WITH 子句中,并将其用作公用表表达式 (CTE),通过内部连接将结果与身体成分表结合起来,从而为就读于科罗拉多大学的人获取身体成分。
我尝试运行我的创建视图语句我收到此错误
错误:“what”处或附近的语法错误第 7 行:with what.body_composition as c
这是我的这个创建视图语句的代码以及我正在使用的表。
CREATE VIEW withclause AS
SELECT a.pid, a.fname, a.lname
FROM what.person AS a
INNER JOIN what.university AS b
on a.uid = b.uid
WHERE uid = 2
WITH what.body_composition AS c
SELECT *
FROM what.body_composition;
这是我正在使用的三个表
Table "what.university"
Column | Type | Modifiers
-----------------+-----------------------+--------------------------------------
uid | integer | not null default nextval('university_uid_seq'::regclass)
university_name | character varying(50) |
city | character varying(50) |
Table "what.body_composition"
Column | Type | Modifiers
--------+---------+-----------
pid | integer | not null
height | integer | not null
weight | integer | not null
age | integer | not null
Table "what.person"
Column | Type | Modifiers
--------+-----------------------+-----------------------------------------------
pid | integer | not null default nextval('person_pid_seq'::reg class)
uid | integer |
fname | character varying(25) | not null
lname | character varying(25) | not null