我正在创建一个 SQL 创建视图语句,但我在写最后一条语句时遇到了问题。对于此语句,我必须使用 intersect 来获取 30 岁以上且身高超过 65 英寸的人。查询的具体细节如下
- 编写一个查询,返回身体成分表中所有年龄超过 30 岁的人的名字和姓氏。然后修改您的查询以使用 INTERSECTS 返回所有 30 岁以上且身高超过 65 英寸的人。
我尝试使用 intersect 和 inner join 编写此视图语句以从不同的表中获取名称,但是当我尝试运行程序时出现错误。我得到的错误是
错误:“WHERE”第 11 行或附近的语法错误
:WHERE b.height = 65;
我不会发布我的完整程序,只是这个创建视图语句,所以行号将被关闭。我将发布我的代码,然后发布我用来创建此视图语句的两个表,希望有人可以帮助我修复此错误。提前致谢。
CREATE VIEW intersectt AS
SELECT
a.fname, a.lname
FROM
what.person as a
INNER JOIN
what.body_composition as b ON a.pid = b.pid
WHERE
b.age > 30
INTERSECT
SELECT
a.fname, a.lname
FROM
what.person as a
INNER JOIN
what.body_composition as b
WHERE
b.height = 65;
这是两张表
表what.body_composition
:
Column | Type | Modifiers
--------+---------+-----------
pid | integer | not null
height | integer | not null
weight | integer | not null
age | integer | not null
和表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