【发布时间】:2014-04-24 17:34:43
【问题描述】:
您好,尝试在 oracle 中创建视图。但是,我的代码中出现错误,我无法解决。 目前我正在尝试创建一个显示 经理,他们的名字和姓氏也分配给他们的诊所 诊所的PK和诊所地址的FK 所有地址都存储在该表中(是的,我知道这不是标准的,但这是我选择的方式) 所以我还想显示他们工作的诊所的详细地址
当然这包括两个我不确定如何实现的 WHERE 语句 第一个是 STAFFJOBNAME "MANAGER"
第二个是 ADDRESSNO 在两个表上匹配的位置
CREATE VIEW MANAGER AS
SELECT STAFF.staffno,STAFF.staffFirstName,STAFF.staffLastName,CLINIC.clinicNo, CLINIC.addressNo
FROM STAFF,CLINIC
WHERE addressNo =
(
SELECT addressNo, addressStreet, addressCity, addressCounty, addressPostcode, addressTelephone,
FROM ADDRESS,
INNER JOIN CLINIC,
ON ADDRESS.addressNo = CLINIC.addressNo
) AND STAFF.staffJobName = 'MANAGER';
我也有这个版本。所以我不确定哪个更接近正确的。
CREATE VIEW MANAGER
(
AS
SELECT STAFF.staffno,STAFF.staffFirstName,STAFF.staffLastName,CLINIC.clinicNo, CLINIC.addressNo, ADDRESS.addressNo, ADDRESS.addressStreet, ADDRESS.addressCity, ADDRESS.addressCounty, ADDRESS.addressPostcode, ADDRESS.addressTelephone,
FROM ADDRESS, STAFF,
INNER JOIN CLINIC,
ON ADDRESS.addressNo = CLINIC.addressNo
);
【问题讨论】:
-
第一个示例中的查询是否运行?
-
尝试创建第一个视图
MANAGER将抛出ORA-00913: too many values。 -
您的第二个版本存在一些问题 - 您不能在视图定义周围使用
(和),并且您的尾随逗号过多 (,)。跨度>