SQL中缺少关键字错误?

时间:2017-04-23 22:06:28

标签: sql oracle ddl

create view PUBLISHER_VC as
SELECT PB_NAME, PB_ZIPCODE, PB_PHONE_NUMBER
FROM PUBLISHER_4_14 pub
     INNER JOIN BOOKS_4_14 boo
where pub.PBID=boo.PBID and BK_LIST_PRICE>100;

我有两个名为PUBLISHER_4_14BOOKS_4_14的表。发布商拥有PB_NAMEPB_ZIPCODEPB_PHONENUMBER列。 BOOKS_4_14BK_LIST_PRICE

我正在尝试创建一个名为PUBLISHER_VC的视图,其中包含从未发布过图书且名称价格低于100美元的发布商的名称,邮政编码和电话号码。当我运行它时,我得到一个丢失的关键字错误。我确保我也有正确的表名和列名。

2 个答案:

答案 0 :(得分:1)

您使用的是INNER JOIN,您需要在连接的ON子句中指定连接条件,而不是在WHERE子句中指定:

create view PUBLISHER_VC as
SELECT PB_NAME, PB_ZIPCODE, PB_PHONE_NUMBER
FROM PUBLISHER_4_14 pub
     INNER JOIN BOOKS_4_14 boo
     ON ( pub.PBID=boo.PBID)
where BK_LIST_PRICE>100;

答案 1 :(得分:0)

  

我正在尝试创建一个名为PUBLISHER_VC的视图,其中包含   从未发布过的发布商的名称,邮政编码和电话号码   一本书的定价低于100美元。

这不是您的查询所做的。这是一个工作版本:

create view PUBLISHER_VC as
    SELECT PB_NAME, PB_ZIPCODE, PB_PHONE_NUMBER
    FROM PUBLISHER_4_14 pub
    WHERE NOT EXISTS (SELECT
                      FROM BOOKS_4_14 boo
                      WHERE pub.PBID = boo.PBID and boo.BK_LIST_PRICE <= 100
                     );